# Send To Many Documentation > Help documentation for Send To Many, a Shopify app for bulk multi-recipient order management. Covers upload and import workflows, multi-recipient checkout, inquiry forms, order management, invoicing, integrations, and configuration. - [Send To Many Documentation](https://docs.sendtomany.com/index.md) ## tutorials Step-by-step tutorials for multi-recipient ordering on Shopify: upload bulk orders, configure checkout, manage gifting inquiries, and connect your own apps. - [Tutorials](https://docs.sendtomany.com/tutorials.md): Step-by-step tutorials for multi-recipient ordering on Shopify: upload bulk orders, configure checkout, manage gifting inquiries, and connect your own apps. ### advanced - [How to Customize Your Shopify Analytics Dashboard for Multi-Recipient Orders](https://docs.sendtomany.com/tutorials/advanced/customize-shopify-analytics-dashboard.md): Replace Shopify's standard sales reports with filtered, dedupped versions that exclude Send To Many aggregate orders. A one-time dashboard update that keeps bulk order revenue reporting accurate. - [How to Customize Shopify Notifications for Send To Many Orders](https://docs.sendtomany.com/tutorials/advanced/customize-shopify-notification-templates.md): Make multi-address orders clear at every email touchpoint. Customize Shopify's order confirmation and shipping confirmation templates so billing customers and gift recipients always know what's happening with their order. - [Create a Private Multi-Recipient Checkout for Repeat Corporate Gifting Customers](https://docs.sendtomany.com/tutorials/advanced/private-multi-recipient-checkout-corporate-gifting.md): Build a private, login-gated multi-recipient checkout for a Shopify B2B company, combining company accounts, Markets, and theme overrides in a dedicated config. - [Translate the Multi-Recipient Cart into Your Store's Languages](https://docs.sendtomany.com/tutorials/advanced/translate-shopify-multi-recipient-cart.md): Localize the multi-recipient cart for global shoppers: export the translation spreadsheet from Shopify, translate it, and import it back in minutes, no code. ### getting-started - [Import Your First Bulk Order into Shopify](https://docs.sendtomany.com/tutorials/getting-started/quick-start.md): Create your first multi-recipient order in minutes. Upload a spreadsheet, validate addresses, calculate shipping, and generate Shopify orders automatically. ### integrations - [ShipStation + Send To Many: Fulfill Bulk Orders from Shopify](https://docs.sendtomany.com/tutorials/integrations/connect-shipstation.md): Configure ShipStation to import and fulfill Send To Many recipient orders while filtering out aggregate orders that don't need shipping. - [Set Up Delivery Digest Emails with Shopify Flow and Klaviyo](https://docs.sendtomany.com/tutorials/integrations/set-up-delivery-digest-emails.md): Send bulk order gifters one daily shipping update per Send instead of an email per shipment. Build the digest with the Send To Many Flow trigger, Klaviyo, and a deep link to the customer's Send history. ### multi-recipient-orders - [Managing Corporate Gifting Inquiries: Submission to Invoice](https://docs.sendtomany.com/tutorials/multi-recipient-orders/manage-and-convert-inquiries.md): The complete workflow for turning inquiry form submissions into Sends. Review submissions, refine recipient data, generate invoices, and collect payment. - [How to Upload a Corporate Gifting Order into Shopify](https://docs.sendtomany.com/tutorials/multi-recipient-orders/upload-a-corporate-gifting-order.md): Ops guide to uploading a corporate gifting order: prep your spreadsheet, validate addresses, calculate shipping and tax, invoice, and create Shopify orders. - [Creating a Corporate Gifting Order](https://docs.sendtomany.com/tutorials/multi-recipient-orders/upload-corporate-gifting-order.md): Step-by-step guide to creating a corporate gifting Send — from spreadsheet upload to invoice and payment collection. - [How to Send Product Samples to Influencers on Shopify](https://docs.sendtomany.com/tutorials/multi-recipient-orders/upload-influencer-mailing.md): Ship product samples to influencers in bulk from Shopify: upload a recipient list, suppress notifications, apply free shipping, and generate orders at once. ### order-management - [How to Cancel & Refund Bulk Orders on Shopify](https://docs.sendtomany.com/tutorials/order-management/cancel-and-refund-orders.md): Cancel individual recipient orders and process refunds across both recipient and aggregate orders. Step-by-step process to keep your accounting balanced. - [Delete & Regenerate Bulk Orders in Shopify](https://docs.sendtomany.com/tutorials/order-management/delete-and-regenerate-orders.md): Start over on a Send by deleting all orders and regenerating from scratch. Retry individual failed orders or rebuild the entire batch. - [Shopify B2B Setup and Configuration](https://docs.sendtomany.com/tutorials/order-management/set-up-shopify-b2b.md): Step-by-step guide to setting up Shopify B2B for corporate gifting, including vaulted payment methods, catalog pricing, payment terms, and order permissions. ### storefront-setup - [Setting Up the Corporate Gifting Inquiry Form on Shopify](https://docs.sendtomany.com/tutorials/storefront-setup/set-up-inquiry-form.md): Add a corporate gifting inquiry form to Shopify: configure fields, place it on a page, set notifications, test the flow, and add conditional logic and uploads. - [Setting Up Multi-Recipient Checkout on Shopify](https://docs.sendtomany.com/tutorials/storefront-setup/set-up-multi-recipient-checkout.md): A step-by-step guide to launching multi-recipient checkout on Shopify: set up recipient fields, test the experience, configure order processing, and go live. ## analytics ### shopify-bulk-order-dashboard-and-exports Track send activity, order status, and revenue from the bulk order dashboard on Shopify, and export detailed CSV data for fulfillment, tax, and full analysis. - [Bulk Order Dashboard & Data Exports for Shopify](https://docs.sendtomany.com/analytics/shopify-bulk-order-dashboard-and-exports.md): Track send activity, order status, and revenue from the bulk order dashboard on Shopify, and export detailed CSV data for fulfillment, tax, and full analysis. ### shopify-multi-recipient-order-analytics Track multi-recipient order performance across checkout, inquiries, and uploads on Shopify: view funnels, export reports, and audit send detail in one place. - [Analytics: Sends, Orders, and Revenue](https://docs.sendtomany.com/analytics/shopify-multi-recipient-order-analytics.md): Track multi-recipient order performance across checkout, inquiries, and uploads on Shopify: view funnels, export reports, and audit send detail in one place. ### shopify-report-filtering-send-to-many Filter Shopify analytics and reports to separate aggregate and recipient orders. Customize your Shopify analytics dashboard to avoid double-counting Send To Many revenue using tags and gateways. - [How to Filter Shopify Reports to Avoid Double-Counting Bulk Orders](https://docs.sendtomany.com/analytics/shopify-report-filtering-send-to-many.md): Filter Shopify analytics and reports to separate aggregate and recipient orders. Customize your Shopify analytics dashboard to avoid double-counting Send To Many revenue using tags and gateways. ## checkout ### configure-checkout-additional-settings Advanced settings for non-standard multi-recipient checkout on Shopify: cart mode, line item properties, B2B payment terms, and custom Liquid for gifting sends. - [Multi-Recipient Checkout: Advanced Settings](https://docs.sendtomany.com/checkout/configure-checkout-additional-settings.md): Advanced settings for non-standard multi-recipient checkout on Shopify: cart mode, line item properties, B2B payment terms, and custom Liquid for gifting sends. ### configure-checkout-core-settings Set up order processing, recipient fields, shipping rates, and delivery dates for multi-recipient checkout on Shopify, plus notifications and inventory options. - [Configure Multi-Recipient Checkout: Order Processing, Recipient Fields & Shipping](https://docs.sendtomany.com/checkout/configure-checkout-core-settings.md): Set up order processing, recipient fields, shipping rates, and delivery dates for multi-recipient checkout on Shopify, plus notifications and inventory options. ### configuring-checkout-basics Set up order processing, recipient fields, and shipping options for multi-recipient checkout on your Shopify store. - [Configure Multi-Recipient Checkout: Order & Shipping Settings](https://docs.sendtomany.com/checkout/configuring-checkout-basics.md): Set up order processing, recipient fields, and shipping options for multi-recipient checkout on your Shopify store. ### configuring-checkout-more-options Add custom form fields, inquiry forms, tiered upsell discounts, shipping rate filters, and advanced settings to your Shopify multi-recipient checkout. - [Multi-Recipient Checkout: Form Fields, Upsells & Advanced Settings](https://docs.sendtomany.com/checkout/configuring-checkout-more-options.md): Add custom form fields, inquiry forms, tiered upsell discounts, shipping rate filters, and advanced settings to your Shopify multi-recipient checkout. ### custom-liquid-script-reference Extend Send To Many's multi-recipient checkout with custom Liquid, the JavaScript API, checkout hooks, and DOM events. A developer reference for the Custom script setting. - [Customize Multi-Recipient Checkout Functionality with Custom Scripts](https://docs.sendtomany.com/checkout/custom-liquid-script-reference.md): Extend Send To Many's multi-recipient checkout with custom Liquid, the JavaScript API, checkout hooks, and DOM events. A developer reference for the Custom script setting. ### customize-checkout-css Use 100+ CSS variables to match the multi-recipient checkout experience to your Shopify store's branding. Colors, fonts, spacing, and layout. - [Customize Multi-Recipient Checkout with CSS Variables](https://docs.sendtomany.com/checkout/customize-checkout-css.md): Use 100+ CSS variables to match the multi-recipient checkout experience to your Shopify store's branding. Colors, fonts, spacing, and layout. ### customize-checkout-with-css Use 100+ CSS variables to match the multi-recipient checkout to your Shopify store's branding. Customize colors, fonts, spacing, buttons, cards, and layout. - [Customize Multi-Recipient Checkout Styling with CSS](https://docs.sendtomany.com/checkout/customize-checkout-with-css.md): Use 100+ CSS variables to match the multi-recipient checkout to your Shopify store's branding. Customize colors, fonts, spacing, buttons, cards, and layout. ### discounts-in-multi-recipient-checkout Configure discount codes, volume discounts, and Shopify automatic discounts in multi-recipient checkout. Per-recipient and order-level code modes, tiered volume pricing, B2B catalog pricing, and discount stacking. - [Discounts in Multi-Recipient Checkout: Codes, Volume Tiers & Automatic Discounts](https://docs.sendtomany.com/checkout/discounts-in-multi-recipient-checkout.md): Configure discount codes, volume discounts, and Shopify automatic discounts in multi-recipient checkout. Per-recipient and order-level code modes, tiered volume pricing, B2B catalog pricing, and discount stacking. ### drawer-slide-cart-setup Ways to present multi-recipient checkout on your Shopify storefront: replace your cart, add a single-versus-multi toggle, a cart button, or wire up a drawer. - [How Shoppers Find Multi-Recipient Checkout](https://docs.sendtomany.com/checkout/drawer-slide-cart-setup.md): Ways to present multi-recipient checkout on your Shopify storefront: replace your cart, add a single-versus-multi toggle, a cart button, or wire up a drawer. ### how-multi-recipient-checkout-works Let shoppers add products to their Shopify cart, enter multiple recipients with different addresses and gift messages, and pay once. Per-recipient product selection, real-time inventory, discount codes, and mobile-optimized checkout. - [Multi-Recipient Checkout: Send to Multiple Addresses in One Order](https://docs.sendtomany.com/checkout/how-multi-recipient-checkout-works.md): Let shoppers add products to their Shopify cart, enter multiple recipients with different addresses and gift messages, and pay once. Per-recipient product selection, real-time inventory, discount codes, and mobile-optimized checkout. ### install-checkout-shopify-theme Add multi-recipient checkout to your Shopify theme with no code: place the checkout app block, set its layout, colors, and add-ons, and assign a configuration. - [Installing the App in Your Shopify Theme](https://docs.sendtomany.com/checkout/install-checkout-shopify-theme.md): Add multi-recipient checkout to your Shopify theme with no code: place the checkout app block, set its layout, colors, and add-ons, and assign a configuration. ### multiple-checkout-configurations Create multiple multi-recipient checkout configurations with different settings for different use cases. Set up separate checkouts for B2B pages, staff order entry, and storefront customers on Pro plans and higher. - [Multiple Checkout Configurations](https://docs.sendtomany.com/checkout/multiple-checkout-configurations.md): Create multiple multi-recipient checkout configurations with different settings for different use cases. Set up separate checkouts for B2B pages, staff order entry, and storefront customers on Pro plans and higher. ### product-customization-multi-recipient-checkout Let shoppers upload logos, enter custom text, and personalize products per recipient during multi-recipient checkout, with custom fields set per product today. - [Product Customization in Multi-Recipient Checkout](https://docs.sendtomany.com/checkout/product-customization-multi-recipient-checkout.md): Let shoppers upload logos, enter custom text, and personalize products per recipient during multi-recipient checkout, with custom fields set per product today. ### setup-multi-recipient-checkout What multi-recipient checkout is and how to get it running on your Shopify store. Configure recipient fields, order processing, and deployment options. - [Setting Up Multi-Recipient Checkout](https://docs.sendtomany.com/checkout/setup-multi-recipient-checkout.md): What multi-recipient checkout is and how to get it running on your Shopify store. Configure recipient fields, order processing, and deployment options. ### shopify-discounts-multi-recipient-checkout How Shopify discounts, discount codes, and built-in upsell discounts work with multi-recipient checkout, covering supported types, limits, and B2B pricing. - [Discounts and Multi-Recipient Checkout](https://docs.sendtomany.com/checkout/shopify-discounts-multi-recipient-checkout.md): How Shopify discounts, discount codes, and built-in upsell discounts work with multi-recipient checkout, covering supported types, limits, and B2B pricing. ### shopify-drawer-slide-cart-setup Multi-recipient checkout works with any cart style. If the button does not appear in your Shopify drawer or slide cart, here is how to add it with a theme edit. - [Multi-Recipient Checkout with Drawer & Slide Carts on Shopify](https://docs.sendtomany.com/checkout/shopify-drawer-slide-cart-setup.md): Multi-recipient checkout works with any cart style. If the button does not appear in your Shopify drawer or slide cart, here is how to add it with a theme edit. ### shopify-multi-recipient-checkout Let shoppers add products to their cart and send to multiple recipients in one checkout. CSV upload or manual entry, gift messages, and one-time payment. - [Shopify Multi-Recipient Checkout: Ship to Multiple Addresses](https://docs.sendtomany.com/checkout/shopify-multi-recipient-checkout.md): Let shoppers add products to their cart and send to multiple recipients in one checkout. CSV upload or manual entry, gift messages, and one-time payment. ### shopify-multi-recipient-order-notifications Control which Shopify emails gifters and recipients receive for bulk and multi-recipient orders, and send gifters a daily delivery digest instead of one email per shipment. - [Order & Shipping Notifications for Multi-Recipient Orders](https://docs.sendtomany.com/checkout/shopify-multi-recipient-order-notifications.md): Control which Shopify emails gifters and recipients receive for bulk and multi-recipient orders, and send gifters a daily delivery digest instead of one email per shipment. ### shopify-single-order-gift-widget Add a gift message field and shipping date picker to your standard Shopify cart page, personalizing single orders with the same features used in bulk carts. - [Single-Order Gift Message and Shipping Date Widget](https://docs.sendtomany.com/checkout/shopify-single-order-gift-widget.md): Add a gift message field and shipping date picker to your standard Shopify cart page, personalizing single orders with the same features used in bulk carts. ### shopify-staff-order-entry Place multi-recipient orders for customers with staff mode: your team shops the storefront, searches saved addresses, builds the order, and submits a draft. - [Staff Order Entry for Multi-Recipient Orders](https://docs.sendtomany.com/checkout/shopify-staff-order-entry.md): Place multi-recipient orders for customers with staff mode: your team shops the storefront, searches saved addresses, builds the order, and submits a draft. ### single-order-gift-widget Add a gift message field and shipping date picker to your standard Shopify cart page, personalizing single orders with the same features used in bulk carts. - [Single-Order Gift Message and Shipping Date Widget](https://docs.sendtomany.com/checkout/single-order-gift-widget.md): Add a gift message field and shipping date picker to your standard Shopify cart page, personalizing single orders with the same features used in bulk carts. ### vintage-theme-json-template-setup Add multi-recipient checkout and the inquiry form to a vintage Shopify theme: convert your cart to a JSON template and create JSON page templates for blocks. - [Setting Up Multi-Recipient Checkout on a Vintage Shopify Theme](https://docs.sendtomany.com/checkout/vintage-theme-json-template-setup.md): Add multi-recipient checkout and the inquiry form to a vintage Shopify theme: convert your cart to a JSON template and create JSON page templates for blocks. ## customer-accounts ### shopify-customer-send-history-page Give gifters a Sends page in their Shopify customer account with every recipient order and delivery status, add Send context to order pages, and deep link to a Send from emails and digests. - [Customer Account Extensions: Sends Page & Order Send Banner for Shopify](https://docs.sendtomany.com/customer-accounts/shopify-customer-send-history-page.md): Give gifters a Sends page in their Shopify customer account with every recipient order and delivery status, add Send context to order pages, and deep link to a Send from emails and digests. ## documentation Reference for everything you need to streamline multi-recipient order uploads and checkouts on your Shopify store. - [Send To Many Documentation](https://docs.sendtomany.com/documentation.md): Reference for everything you need to streamline multi-recipient order uploads and checkouts on your Shopify store. ## getting-started Learn how Send To Many works: gifting sends, order uploads, multi-address checkout, the inquiry form, and setting up your first multi-recipient order. - [Getting Started with Send To Many on Shopify](https://docs.sendtomany.com/getting-started.md): Learn how Send To Many works: gifting sends, order uploads, multi-address checkout, the inquiry form, and setting up your first multi-recipient order. ### bulk-order-import-quick-start Create your first multi-recipient order in minutes. Upload a spreadsheet, validate addresses, calculate shipping, and generate Shopify orders automatically. - [Import your First Bulk Order into Shopify](https://docs.sendtomany.com/getting-started/bulk-order-import-quick-start.md): Create your first multi-recipient order in minutes. Upload a spreadsheet, validate addresses, calculate shipping, and generate Shopify orders automatically. ### corporate-gifting-shopify How Shopify merchants manage corporate gifting: bulk orders, recipient lists, invoicing, and fulfillment for client gifts, employee rewards, and event swag. - [What is Corporate Gifting on Shopify?](https://docs.sendtomany.com/getting-started/corporate-gifting-shopify.md): How Shopify merchants manage corporate gifting: bulk orders, recipient lists, invoicing, and fulfillment for client gifts, employee rewards, and event swag. ### multi-recipient-orders-shopify How multi-recipient, multi-ship, and multi-address orders work on Shopify: one payment, an order per recipient, with shipping and tax calculated per address. - [How Do Multi-Recipient Orders Work on Shopify?](https://docs.sendtomany.com/getting-started/multi-recipient-orders-shopify.md): How multi-recipient, multi-ship, and multi-address orders work on Shopify: one payment, an order per recipient, with shipping and tax calculated per address. ### send-to-many-launch-checklist Step-by-step checklist to launch Send To Many on your Shopify store. Covers technical setup, team training, test transactions, and accounting review. - [Launch Checklist](https://docs.sendtomany.com/getting-started/send-to-many-launch-checklist.md): Step-by-step checklist to launch Send To Many on your Shopify store. Covers technical setup, team training, test transactions, and accounting review. ### shopify-bulk-order-concepts Understand how Send To Many structures bulk orders in Shopify: Sends, recipient orders, aggregate invoices, tax handling, and revenue reporting. - [Key Concepts for Shopify Bulk Orders](https://docs.sendtomany.com/getting-started/shopify-bulk-order-concepts.md): Understand how Send To Many structures bulk orders in Shopify: Sends, recipient orders, aggregate invoices, tax handling, and revenue reporting. ## inquiry-form ### add-inquiry-form-shopify-store How the inquiry form is deployed as a Shopify theme app extension section. Add it to any page template from the theme editor. - [Adding the Inquiry Form to Your Storefront](https://docs.sendtomany.com/inquiry-form/add-inquiry-form-shopify-store.md): How the inquiry form is deployed as a Shopify theme app extension section. Add it to any page template from the theme editor. ### configure-corporate-gifting-form Customize form fields, collect customer addresses, set conditional logic, manage import formats, and configure notifications for your Shopify inquiry form. - [Configure Inquiry Form Fields, Logic & Notifications](https://docs.sendtomany.com/inquiry-form/configure-corporate-gifting-form.md): Customize form fields, collect customer addresses, set conditional logic, manage import formats, and configure notifications for your Shopify inquiry form. ### how-corporate-gifting-inquiry-form-works Capture bulk order requests from your storefront and turn them into Sends. Visitors submit recipient lists and requirements, you review and generate orders. - [Corporate Gifting Inquiry Form for Shopify Stores](https://docs.sendtomany.com/inquiry-form/how-corporate-gifting-inquiry-form-works.md): Capture bulk order requests from your storefront and turn them into Sends. Visitors submit recipient lists and requirements, you review and generate orders. ### manage-corporate-gifting-inquiries How inquiry form submissions flow into Send To Many. Automatic customer creation, file queuing, and the submission-to-invoice workflow. - [Managing Inquiries](https://docs.sendtomany.com/inquiry-form/manage-corporate-gifting-inquiries.md): How inquiry form submissions flow into Send To Many. Automatic customer creation, file queuing, and the submission-to-invoice workflow. ## integrations ### shopify-bird-store-pickup-local-delivery Enable local delivery and shipping rules for your Sends using the Bird (Bird Chime) Shopify app for delivery and rate management. - [Bird Integration](https://docs.sendtomany.com/integrations/shopify-bird-store-pickup-local-delivery.md): Enable local delivery and shipping rules for your Sends using the Bird (Bird Chime) Shopify app for delivery and rate management. ### shopify-bundle-apps-checkout Send To Many preserves bundle line item properties from apps like Shopify Bundles and FoxSell during multi-recipient checkout and order import. - [Shopify Bundles with Multi-Recipient Checkout](https://docs.sendtomany.com/integrations/shopify-bundle-apps-checkout.md): Send To Many preserves bundle line item properties from apps like Shopify Bundles and FoxSell during multi-recipient checkout and order import. ### shopify-custom-shipping-dates-rates-api Integrate a custom shipping date and rate provider with Send To Many for delivery date selection on multi-address Shopify orders. - [Custom Shipping API for Multi-Recipient Orders on Shopify](https://docs.sendtomany.com/integrations/shopify-custom-shipping-dates-rates-api.md): Integrate a custom shipping date and rate provider with Send To Many for delivery date selection on multi-address Shopify orders. ### shopify-flare-delivery-date Use the Flare Delivery Date Picker with bulk orders on Shopify: match Flare's attribute key and date format so shipping dates appear on your Flare calendar too. - [Flare Delivery Dates with Multi-Recipient Orders](https://docs.sendtomany.com/integrations/shopify-flare-delivery-date.md): Use the Flare Delivery Date Picker with bulk orders on Shopify: match Flare's attribute key and date format so shipping dates appear on your Flare calendar too. ### shopify-flow-bulk-order-automation Use native Send To Many triggers in Shopify Flow to automate notifications, fulfillment syncing, and workflows when Sends are created, completed, or paid. - [Shopify Flow Automation for Bulk & Multi-Recipient Orders](https://docs.sendtomany.com/integrations/shopify-flow-bulk-order-automation.md): Use native Send To Many triggers in Shopify Flow to automate notifications, fulfillment syncing, and workflows when Sends are created, completed, or paid. ### shopify-product-customization-apps Send To Many preserves custom line item properties from engraving, monogramming, and personalization apps in both checkout and spreadsheet uploads. - [Product Customization Apps with Bulk Orders on Shopify](https://docs.sendtomany.com/integrations/shopify-product-customization-apps.md): Send To Many preserves custom line item properties from engraving, monogramming, and personalization apps in both checkout and spreadsheet uploads. ### shopify-shipstation-fulfillment How Send To Many orders flow into ShipStation for fulfillment. Recipient orders import automatically while aggregate orders need to be filtered out. - [ShipStation Integration](https://docs.sendtomany.com/integrations/shopify-shipstation-fulfillment.md): How Send To Many orders flow into ShipStation for fulfillment. Recipient orders import automatically while aggregate orders need to be filtered out. ### shopify-zapiet-store-pickup-local-delivery Enable Zapiet local delivery and pickup options for multi-recipient Sends. Mix delivery methods across recipients in a single bulk order. - [Zapiet + Send To Many: Local Delivery for Bulk Orders on Shopify](https://docs.sendtomany.com/integrations/shopify-zapiet-store-pickup-local-delivery.md): Enable Zapiet local delivery and pickup options for multi-recipient Sends. Mix delivery methods across recipients in a single bulk order. ## invoicing ### shopify-corporate-gifting-deposits-split-payments Two approaches for collecting deposits on large corporate gifting orders: Shopify B2B payment terms or a manual credit workflow. Works on any Shopify plan. - [Deposits & Split Payments for Large Shopify Gifting Orders](https://docs.sendtomany.com/invoicing/shopify-corporate-gifting-deposits-split-payments.md): Two approaches for collecting deposits on large corporate gifting orders: Shopify B2B payment terms or a manual credit workflow. Works on any Shopify plan. ### shopify-corporate-gifting-invoice-payment How aggregate invoices work for corporate gifting. Options for collecting payment from gifters and what happens after the invoice is paid. - [Bulk Order Invoicing & Payment Collection on Shopify](https://docs.sendtomany.com/invoicing/shopify-corporate-gifting-invoice-payment.md): How aggregate invoices work for corporate gifting. Options for collecting payment from gifters and what happens after the invoice is paid. ### shopify-corporate-gifting-quotes-estimates Create quotes and collect prepayment for corporate gifting orders using Shopify draft orders before importing recipients. - [Corporate Gifting Quotes & Estimates on Shopify](https://docs.sendtomany.com/invoicing/shopify-corporate-gifting-quotes-estimates.md): Create quotes and collect prepayment for corporate gifting orders using Shopify draft orders before importing recipients. ### shopify-plus-b2b-corporate-gifting Overview of how Shopify B2B features integrate with Send To Many for corporate gifting, including vaulted payments, catalog pricing, and payment terms. - [Using Shopify B2B for Corporate Gifting](https://docs.sendtomany.com/invoicing/shopify-plus-b2b-corporate-gifting.md): Overview of how Shopify B2B features integrate with Send To Many for corporate gifting, including vaulted payments, catalog pricing, and payment terms. ## migrating-to-v2 ### customize-checkout-v2-css Use 100+ CSS variables to match the multi-recipient cart checkout to your Shopify store's branding. Colors, fonts, spacing, layout, and sidebar positioning. - [Customize Multi-Recipient Cart v2 with CSS Variables](https://docs.sendtomany.com/migrating-to-v2/customize-checkout-v2-css.md): Use 100+ CSS variables to match the multi-recipient cart checkout to your Shopify store's branding. Colors, fonts, spacing, layout, and sidebar positioning. ### switching-to-new-multi-recipient-checkout Step-by-step guide to migrating from the original multi-recipient checkout to the new version on Shopify: transfer settings, update your theme, and go live. - [Switching to the New Multi-Recipient Checkout](https://docs.sendtomany.com/migrating-to-v2/switching-to-new-multi-recipient-checkout.md): Step-by-step guide to migrating from the original multi-recipient checkout to the new version on Shopify: transfer settings, update your theme, and go live. ## orders ### shopify-aggregate-gifter-order-management How aggregate (gifter) orders work in Shopify, how to exclude them from fulfillment, filter them in reports, and mark them as fulfilled. - [Managing Aggregate Orders](https://docs.sendtomany.com/orders/shopify-aggregate-gifter-order-management.md): How aggregate (gifter) orders work in Shopify, how to exclude them from fulfillment, filter them in reports, and mark them as fulfilled. ### shopify-bulk-order-cancellation-and-refund How cancellation works across recipient and aggregate orders in Send To Many. A two-step process to keep fulfillment and accounting in sync. - [Cancelling and Refunding Orders](https://docs.sendtomany.com/orders/shopify-bulk-order-cancellation-and-refund.md): How cancellation works across recipient and aggregate orders in Send To Many. A two-step process to keep fulfillment and accounting in sync. ### shopify-bulk-order-delete-and-regenerate How to start over on a Send by deleting all orders and regenerating from scratch. Use the Prepaid Invoice preset to avoid re-invoicing. - [Deleting and Regenerating Orders](https://docs.sendtomany.com/orders/shopify-bulk-order-delete-and-regenerate.md): How to start over on a Send by deleting all orders and regenerating from scratch. Use the Prepaid Invoice preset to avoid re-invoicing. ### shopify-bulk-order-tracking-and-fulfillment What happens when Send To Many generates orders. Two order types are created in Shopify, how to find them, track fulfillment, and handle failed orders. - [After Order Generation: Tracking & Fulfillment in Shopify](https://docs.sendtomany.com/orders/shopify-bulk-order-tracking-and-fulfillment.md): What happens when Send To Many generates orders. Two order types are created in Shopify, how to find them, track fulfillment, and handle failed orders. ### shopify-invoice-product-images Display product thumbnails on aggregate draft order invoices and order confirmation emails so gifters can identify what they ordered. - [Show Product Images on Shopify Bulk Order Invoices](https://docs.sendtomany.com/orders/shopify-invoice-product-images.md): Display product thumbnails on aggregate draft order invoices and order confirmation emails so gifters can identify what they ordered. ## reference ### faq Answers to common questions about multi-recipient orders on Shopify: what a Send is, the three ways to create one, and what happens when orders are generated. - [Frequently Asked Questions](https://docs.sendtomany.com/reference/faq.md): Answers to common questions about multi-recipient orders on Shopify: what a Send is, the three ways to create one, and what happens when orders are generated. - [FAQ: Multi-Recipient Checkout Setup & Compatibility](https://docs.sendtomany.com/reference/faq/checkout.md): Answers about checkout setup, drawer cart support, bundle products, CSV upload at checkout, form customization, and product customization apps. - [FAQ: Gift Messages & Product Customization in Bulk Orders](https://docs.sendtomany.com/reference/faq/gift-messages-and-customization.md): Answers about adding gift messages via upload or checkout, and enabling customer image uploads for product customization on multi-recipient orders. - [FAQ: Notifications, Invoicing, B2B & Team Access](https://docs.sendtomany.com/reference/faq/notifications-invoicing-and-access.md): Answers about notification toggles, upload template sharing, B2B payment terms, deposit collection, printing customized invoices from unpaid draft orders, and team access roles. - [FAQ: Bulk Order Types, Limits & Cancellations on Shopify](https://docs.sendtomany.com/reference/faq/orders.md): Answers about order plan limits, calculated vs. $0 recipient orders, multi-product sends, cancellations, regeneration, and inventory management. - [FAQ: Bulk Order Revenue Reporting & Order Identification](https://docs.sendtomany.com/reference/faq/revenue-and-reporting.md): Answers about avoiding double-counted revenue, identifying Send To Many orders in Shopify reports, and automating aggregate order fulfillment. - [FAQ: Shipping Rates & Sales Tax for Multi-Recipient Orders](https://docs.sendtomany.com/reference/faq/shipping-and-tax.md): Answers about per-recipient shipping calculation, local delivery with Zapiet and Bird, shipping method columns in uploads, and multi-state tax handling. ### send-to-many-glossary Definitions of key terms: Sends, recipient orders, aggregate orders, order generation, inquiry forms, and other Shopify bulk order concepts. - [Shopify Bulk Order & Corporate Gifting Glossary](https://docs.sendtomany.com/reference/send-to-many-glossary.md): Definitions of key terms: Sends, recipient orders, aggregate orders, order generation, inquiry forms, and other Shopify bulk order concepts. ### troubleshooting - [Fix: Checkout Button Missing, Settings Not Updating](https://docs.sendtomany.com/reference/troubleshooting/checkout-and-storefront.md): Troubleshoot the multi-recipient button not appearing, checkout settings not saving, and Cart Transform conflicts with other Shopify apps. - [Fix: Upload Errors, Excel ZIP Codes & Import Format Issues](https://docs.sendtomany.com/reference/troubleshooting/data-and-upload-formatting.md): Troubleshoot upload validation errors, Excel formatting problems with ZIP codes and phone numbers, and Import Format matching issues. - [Fix: ShipStation, Shipping API & Integration Issues](https://docs.sendtomany.com/reference/troubleshooting/integrations.md): Troubleshoot ShipStation queue problems, custom shipping API errors, line item property passthrough, and Zapiet/Bird integration issues. - [Fix: Unwanted Shipping Emails & Duplicate Notifications](https://docs.sendtomany.com/reference/troubleshooting/notifications-and-email.md): Troubleshoot customers receiving shipping notifications despite suppression, and duplicate confirmation emails from Shopify and ShipStation. - [Fix: Stuck Order Generation, Double Revenue & ERP Issues](https://docs.sendtomany.com/reference/troubleshooting/orders-and-generation.md): Troubleshoot stuck order generation, double-counted revenue in Shopify reports, aggregate order fulfillment, and ERP integration issues. ## settings ### shopify-bulk-order-access-control Manage team access with Admin, Manager, and Staff roles. Control who can create Sends, change settings, and manage users in Send To Many. - [Team Access Control & User Roles for Shopify Bulk Orders](https://docs.sendtomany.com/settings/shopify-bulk-order-access-control.md): Manage team access with Admin, Manager, and Staff roles. Control who can create Sends, change settings, and manage users in Send To Many. ### shopify-bulk-order-generation-settings Complete reference for all settings that control how your orders are generated, invoiced, and fulfilled in Send To Many for Shopify. - [Bulk Order Generation Settings: Complete Reference for Shopify](https://docs.sendtomany.com/settings/shopify-bulk-order-generation-settings.md): Complete reference for all settings that control how your orders are generated, invoiced, and fulfilled in Send To Many for Shopify. ### shopify-bulk-order-pricing-and-plans Send To Many pricing is driven by recipient order volume, with higher plans unlocking additional features. Understand Pay as you go, monthly and annual plans, what counts as an order, overages, and plan changes. - [Pricing and Plans: How Send To Many Billing Works on Shopify](https://docs.sendtomany.com/settings/shopify-bulk-order-pricing-and-plans.md): Send To Many pricing is driven by recipient order volume, with higher plans unlocking additional features. Understand Pay as you go, monthly and annual plans, what counts as an order, overages, and plan changes. ### shopify-customer-address-management Control how recipient addresses interact with Shopify customer records during order generation. Configure address cleanup and B2B company associations. - [Customer and Address Management](https://docs.sendtomany.com/settings/shopify-customer-address-management.md): Control how recipient addresses interact with Shopify customer records during order generation. Configure address cleanup and B2B company associations. ### shopify-order-metafields-upload-checkout Store structured data from spreadsheet uploads and multi-recipient checkout in Shopify order metafields, mapping imported columns and recipient fields easily. - [Order Metafields: Map Upload and Checkout Data to Shopify Metafields](https://docs.sendtomany.com/settings/shopify-order-metafields-upload-checkout.md): Store structured data from spreadsheet uploads and multi-recipient checkout in Shopify order metafields, mapping imported columns and recipient fields easily. ## tax-and-shipping ### shopify-per-recipient-sales-tax-calculation How sales tax is calculated, collected, and reported for bulk corporate gifting orders on Shopify, with per-recipient detail and aggregate invoice collection. - [Sales Tax Calculation, Collection, and Reporting](https://docs.sendtomany.com/tax-and-shipping/shopify-per-recipient-sales-tax-calculation.md): How sales tax is calculated, collected, and reported for bulk corporate gifting orders on Shopify, with per-recipient detail and aggregate invoice collection. ## upload ### bulk-order-send-types Pre-configure order generation for corporate gifting, influencer seeding, and internal fulfillment, so one click applies the right defaults for each workflow. - [Send Presets: Configure Bulk Order Settings by Use Case](https://docs.sendtomany.com/upload/bulk-order-send-types.md): Pre-configure order generation for corporate gifting, influencer seeding, and internal fulfillment, so one click applies the right defaults for each workflow. ### bulk-order-spreadsheet-format Format your CSV or Excel file for multi-recipient order imports. Column mapping for names, addresses, products, quantities, gift messages, and shipping methods. - [Bulk Order Spreadsheet Format: CSV & Excel Template for Shopify](https://docs.sendtomany.com/upload/bulk-order-spreadsheet-format.md): Format your CSV or Excel file for multi-recipient order imports. Column mapping for names, addresses, products, quantities, gift messages, and shipping methods. ### influencer-seeding-bulk-mailing How influencer seeding works: ship product samples in bulk from Shopify with suppressed notifications, free shipping, and zero-cost recipient orders each time. - [Influencer Seeding Sends](https://docs.sendtomany.com/upload/influencer-seeding-bulk-mailing.md): How influencer seeding works: ship product samples in bulk from Shopify with suppressed notifications, free shipping, and zero-cost recipient orders each time. ### saved-import-formats Save your column mapping after the first upload so you do not remap next time, reusing import formats across manual uploads and inquiry form submissions daily. - [Saved Import Formats](https://docs.sendtomany.com/upload/saved-import-formats.md): Save your column mapping after the first upload so you do not remap next time, reusing import formats across manual uploads and inquiry form submissions daily. ### shopify-bulk-order-inventory-alerts See real-time stock warnings while building a Send. Alerts factor in inventory committed to other open Sends that haven't generated orders yet. - [Inventory Alerts for Bulk Orders: Prevent Overselling on Shopify](https://docs.sendtomany.com/upload/shopify-bulk-order-inventory-alerts.md): See real-time stock warnings while building a Send. Alerts factor in inventory committed to other open Sends that haven't generated orders yet. ### shopify-corporate-gifting-order How corporate gifting sends work: collect payment from a gifter company through an aggregate invoice before generating a Shopify order for each recipient today. - [Corporate Gifting Orders](https://docs.sendtomany.com/upload/shopify-corporate-gifting-order.md): How corporate gifting sends work: collect payment from a gifter company through an aggregate invoice before generating a Shopify order for each recipient today. ### shopify-product-customization-bulk-order-upload Include engraving, monogramming, gift messages, and logo uploads as line item properties when importing multi-recipient orders from a spreadsheet in Shopify. - [Adding Product Customization to Bulk Orders During Upload](https://docs.sendtomany.com/upload/shopify-product-customization-bulk-order-upload.md): Include engraving, monogramming, gift messages, and logo uploads as line item properties when importing multi-recipient orders from a spreadsheet in Shopify. --- # Full Documentation Content # Tutorials Task-oriented, step-by-step guides for Send To Many. Each tutorial walks you through a complete workflow from start to finish. ## Setup Guides[​](#setup-guides "Direct link to Setup Guides") * [Import Your First Bulk Order into Shopify](https://docs.sendtomany.com/tutorials/getting-started/quick-start/.md): Create your first Send using the upload workflow. * [Setting Up Multi-Recipient Checkout on Shopify](https://docs.sendtomany.com/tutorials/storefront-setup/set-up-multi-recipient-checkout/.md): Configure and launch multi-recipient checkout on your storefront. * [Setting Up the Corporate Gifting Inquiry Form](https://docs.sendtomany.com/tutorials/storefront-setup/set-up-inquiry-form/.md): Add the form to a page, configure fields, set up notifications, and test the flow. ## Sending Orders[​](#sending-orders "Direct link to Sending Orders") * [How to Create a Corporate Gifting Order](https://docs.sendtomany.com/tutorials/multi-recipient-orders/upload-corporate-gifting-order/.md): Upload a recipient spreadsheet, generate an invoice, and collect payment. * [How to Send Product Samples to Influencers](https://docs.sendtomany.com/tutorials/multi-recipient-orders/upload-influencer-mailing/.md): Ship product samples in bulk with suppressed notifications and free shipping. * [How to Manage and Convert Inquiries](https://docs.sendtomany.com/tutorials/multi-recipient-orders/manage-and-convert-inquiries/.md): Turn inquiry form submissions into completed Sends. * [How to Upload a Corporate Gifting Order into Shopify](https://docs.sendtomany.com/tutorials/multi-recipient-orders/upload-a-corporate-gifting-order/.md): Detailed ops-team guide to spreadsheet prep, upload, validation, and order generation. ## After You Send[​](#after-you-send "Direct link to After You Send") * [How to Cancel and Refund Bulk Orders](https://docs.sendtomany.com/tutorials/order-management/cancel-and-refund-orders/.md): Two-step cancellation across recipient and aggregate orders. * [How to Delete and Regenerate Orders](https://docs.sendtomany.com/tutorials/order-management/delete-and-regenerate-orders/.md): Start over on a Send without re-invoicing. * [How to Set Up Shopify B2B for Corporate Gifting](https://docs.sendtomany.com/tutorials/order-management/set-up-shopify-b2b/.md): Vaulted cards, catalog pricing, payment terms, and permissions. ## Integrations[​](#integrations "Direct link to Integrations") * [How to Connect ShipStation for Bulk Order Fulfillment](https://docs.sendtomany.com/tutorials/integrations/connect-shipstation/.md): Filter aggregate orders, configure recipient order settings, and set up automation rules. * [Set Up Delivery Digest Emails with Shopify Flow and Klaviyo](https://docs.sendtomany.com/tutorials/integrations/set-up-delivery-digest-emails/.md): Send bulk order gifters one daily shipping update per Send instead of an email per shipment. ## Advanced[​](#advanced "Direct link to Advanced") * [Create a Private Multi-Recipient Checkout for Repeat Corporate Gifting Customers](https://docs.sendtomany.com/tutorials/advanced/private-multi-recipient-checkout-corporate-gifting/.md): Combine Shopify company accounts, B2B markets, and theme overrides with a dedicated checkout configuration. * [Translate the Multi-Recipient Cart into Your Store's Languages](https://docs.sendtomany.com/tutorials/advanced/translate-shopify-multi-recipient-cart/.md): Export the translation spreadsheet, translate it with an AI prompt, and import it back. * [How to Customize Shopify Notifications for Send To Many Orders](https://docs.sendtomany.com/tutorials/advanced/customize-shopify-notification-templates/.md): Tailor order confirmation and shipping confirmation emails so billing customers and gift recipients understand their multi-address order. * [How to Customize Your Shopify Analytics Dashboard for Multi-Recipient Orders](https://docs.sendtomany.com/tutorials/advanced/customize-shopify-analytics-dashboard/.md): Swap in filtered sales reports that exclude aggregate orders so bulk order revenue isn't double-counted. --- # How to Customize Your Shopify Analytics Dashboard for Multi-Recipient Orders Replace Shopify's standard sales reports with filtered, dedupped versions that exclude Send To Many aggregate orders. A one-time dashboard update that keeps bulk order revenue reporting accurate. When you use **calculated values** for order revenue handling, every Send creates revenue on two kinds of orders: the aggregate order that captures payment from the gifter, and the recipient orders that itemize what ships to each address. Shopify's standard dashboard reports count both, so your headline sales numbers get inflated. The fix is a one-time update to your Shopify Analytics dashboard. You'll create filtered copies of the standard sales reports that exclude aggregate orders, then swap them onto the dashboard in place of the originals. It's a common pattern for merchants who need to carve out revenue from a specific channel. ## Before you start[​](#before-you-start "Direct link to Before you start") * This tutorial applies when your send presets use **calculated values**. If you use zero-dollar recipient orders, there's no double-counting to fix. * You'll need Shopify admin access with permission to view and edit Analytics. * Inventory is not affected either way. Aggregate orders use placeholder custom line items and don't draw real inventory, so only revenue reports need attention. For background on how the two order types work, see [Understanding aggregate orders](https://docs.sendtomany.com/orders/shopify-aggregate-gifter-order-management/.md). ## Step 1: Open the full report from the dashboard[​](#step-1-open-the-full-report-from-the-dashboard "Direct link to Step 1: Open the full report from the dashboard") In **Shopify > Analytics**, find the card you want to fix, starting with **Total sales over time**. Click through to open the full report in Shopify's report editor. ## Step 2: Add the order tags filter[​](#step-2-add-the-order-tags-filter "Direct link to Step 2: Add the order tags filter") Every aggregate order is automatically tagged **"Send to Many aggregate"**, which makes it easy to exclude. In the report editor's **Controls** panel, open **Filters** and add: * **Order tags** > **does not contain** > **Send to Many aggregate** If you prefer working in the ShopifyQL editor, you can add the same condition as a `WHERE` clause on `order_tags` instead. Both approaches produce the same result. ![Shopify analytics report editor showing the Send To Many aggregate order tag filter and the Save as button for creating a dedupped sales report](/assets/images/filtering-shopify-reports-save-filtered-report-22c644bcd6e823c1187945c033ccf574.png) Run the report and confirm the total drops by the amount of your aggregate orders. ## Step 3: Save the filtered report[​](#step-3-save-the-filtered-report "Direct link to Step 3: Save the filtered report") Click **Save as** at the top of the report and give it a name that makes the difference obvious, such as **"Total sales over time - dedupped"**. The original standard report stays untouched, and your filtered copy appears in your saved reports. ## Step 4: Replace the standard card on the dashboard[​](#step-4-replace-the-standard-card-on-the-dashboard "Direct link to Step 4: Replace the standard card on the dashboard") Back on the Analytics dashboard, edit the dashboard layout: 1. Remove the standard **Total sales over time** card. 2. Add a new card and search for your saved report by name (searching "dedupped" finds all your filtered reports quickly). 3. Drag the new card into position and save the dashboard. ![Animation showing a standard Shopify analytics dashboard card being removed and replaced with a filtered dedupped Send To Many sales report](/assets/images/customizing-analytics-dashboard-94491ca677403f58567b3aee3524d9fe.gif) ## Step 5: Repeat for each sales report[​](#step-5-repeat-for-each-sales-report "Direct link to Step 5: Repeat for each sales report") Apply the same filter, save, and replace steps to the other sales-based reports on your dashboard: * **Total sales breakdown** * **Total sales by product** (this also removes the aggregate orders' placeholder line items from product reporting) * **Total sales by sales channel** * **Average order value over time**. Decide which orders count first: exclude aggregate orders to measure AOV per recipient order, or instead exclude orders tagged **"Send to Many Storefront-Child"** to treat each aggregate order as one large order and let bulk purchases raise your AOV. * **Total sales by referrer**, **social referrer**, and **POS location**, if you use them. Test whether excluding aggregate (parent) or recipient (child) orders gives the attribution you want before saving. * The spark chart cards at the top (**Gross sales**, **Returning customer rate**, **Orders fulfilled**, **Orders**), which you can replace like any other dashboard card Session-based reports (Sessions over time, Conversion rate, Sessions by device or location) don't need changes. Recipient orders aren't created from storefront sessions, so those numbers were never double-counted. **Products by sell-through rate** is also fine as is, since inventory isn't double-counted. warning Spark charts elsewhere in the Shopify admin, like the sales summary on the admin **Home** page, **cannot be customized or filtered**. Those numbers will still include aggregate order revenue. ## Verify your dashboard[​](#verify-your-dashboard "Direct link to Verify your dashboard") Pick a day with at least one completed Send and compare your dedupped **Total sales over time** card against the standard report. The difference should equal the total of that day's aggregate orders. If the numbers match exactly, the filter isn't applied on the dashboard card. tip If you use third-party reporting or accounting tools that pull Shopify order data, apply the same tag-based exclusion there so every system reports the same revenue. ## What's next[​](#whats-next "Direct link to What's next") * [Filter Shopify reports for Send To Many orders](https://docs.sendtomany.com/analytics/shopify-report-filtering-send-to-many/.md): The full reference on tags, gateways, and which reports need filtering * [Send To Many's built-in Analytics](https://docs.sendtomany.com/analytics/shopify-multi-recipient-order-analytics/.md): Send-level revenue, funnels, and exports that are never double-counted --- # How to Customize Shopify Notifications for Send To Many Orders Make multi-address orders clear at every email touchpoint. Customize Shopify's order confirmation and shipping confirmation templates so billing customers and gift recipients always know what's happening with their order. A multi-recipient order doesn't behave like the orders Shopify's email templates were written for. Payment is captured on one aggregate order that never ships, while the gifts ship separately to each address on the list. Shopify's default notification copy assumes one order going to one address, so at exactly the moments your customer wants reassurance, the emails they receive can be confusing or silent on what's actually happening. Two email touchpoints matter: 1. **The order confirmation for the aggregate order.** This always goes out to the billing customer, because the aggregate order is what captured their payment. It's your one guaranteed chance to confirm the multi-address order worked the way they intended. 2. **Shipping confirmations.** These are optional and configurable: depending on your send preset settings they go to the billing customer, to each gift recipient, or to no one. Decide which cases your store uses and customize each one that applies. This tutorial shows how to identify Send To Many orders inside Shopify's notification templates, then walks through customizing each touchpoint. ## Before you start[​](#before-you-start "Direct link to Before you start") * The [notification settings](https://docs.sendtomany.com/checkout/shopify-multi-recipient-order-notifications/.md) on your send presets (SUPPRESS, RECIPIENT, or CUSTOMER) control which shipping notifications go out and to whom. These settings live in both your multi-recipient cart settings and each manual upload send preset, so check both if you use both workflows. This tutorial is about what the emails say, not who receives them. * This tutorial is for Shopify's own notification templates, under **Settings > Notifications** in your Shopify admin. If another app such as Klaviyo sends these emails for your store, the same logic applies; rebuild the conditionals in that tool's template editor instead. * Test every change in Shopify's built-in notification preview against a real Send To Many order before saving. ## How to identify Send To Many orders in an email template[​](#how-to-identify-send-to-many-orders-in-an-email-template "Direct link to How to identify Send To Many orders in an email template") Every Send creates two kinds of Shopify orders, and each maps to its own notification. The **aggregate order** rolls up every line item in the Send and captures payment from the billing customer; it's marked "Does not require shipping" and never ships, so the notification that matters for it is the order confirmation. **Recipient orders** are created for each person receiving a gift and are the orders that actually ship, so they're the orders behind every shipping confirmation. One Liquid note before the snippets: email notification templates access order properties directly, without an `order.` prefix. Use `tags`, not `order.tags` (only SMS notifications use the prefix). ### Identifying recipient orders (shipping confirmations)[​](#identifying-recipient-orders-shipping-confirmations "Direct link to Identifying recipient orders (shipping confirmations)") Recipient orders carry these tags: | Workflow | Tags we add | Payment gateway | | -------- | ---------------------------------------------------------- | --------------- | | Upload | `Send to Many #{send_id}` | Send To Many | | Checkout | `Send to Many #{send_id}`, `Send to Many Storefront-Child` | Send To Many | The `Storefront-Child` tag is a default you can edit in your multi-recipient cart settings, where you can also add your own tags. If you've changed it, match your own tag in the snippets below. Because the Send ID changes with every Send, a template rule can't match the ID tag as an exact string. Instead, loop through all of the order's tags and check each one for the fixed "Send to Many" portion, which catches any Send To Many tag regardless of the ID: ``` {% assign is_stm_order = false %} {% for tag in tags %} {% if tag contains "Send to Many" %} {% assign is_stm_order = true %} {% endif %} {% endfor %} ``` The payment gateway works just as well for recipient orders: every Send To Many recipient order, from either workflow, is paid through the Send To Many payment gateway. ``` {% assign paid_via_stm = false %} {% for transaction in transactions %} {% if transaction.gateway_display_name contains "Send To Many" %} {% assign paid_via_stm = true %} {% endif %} {% endfor %} ``` Use either signal, or both together for a stricter match. ### Identifying aggregate orders (order confirmations)[​](#identifying-aggregate-orders-order-confirmations "Direct link to Identifying aggregate orders (order confirmations)") Aggregate orders carry these tags: | Workflow | Tags we add | Payment gateway | | -------- | ------------------------------------------------------------------------------------- | ----------------------------- | | Upload | `Send to Many #{send_id}`, `Send to Many aggregate` | Your store's standard gateway | | Checkout | `Send to Many #{send_id}`, `Send to Many aggregate`, `Send to Many Storefront-Parent` | Your store's standard gateway | For aggregate orders, tags are the only reliable signal. The aggregate order is created from a paid draft order using your store's standard payment gateway, so a gateway check can't tell it apart from any other order. Use the `Send to Many aggregate` tag, which has no dynamic segment and matches exactly: ``` {% if tags contains "Send to Many aggregate" %} {% comment %} Aggregate order {% endcomment %} {% endif %} ``` Like `Storefront-Child`, the `Storefront-Parent` tag is an editable default in your multi-recipient cart settings. And on checkout orders, the `Send to Many #{send_id}` tag is added to the aggregate order moments after it's created, so in rare cases it may not yet be present when the order confirmation renders. Confirm what's available in the template you're editing Order properties are available across notification templates, but some data may not be present yet at the moment a notification is generated. Test your conditional in Shopify's preview, and ask Shopify Sidekick, the built-in AI assistant in **Settings > Notifications**, for the exact syntax for the template you have open. Shopify's [notification email variables reference](https://help.shopify.com/en/manual/fulfillment/setup/notifications/email-variables) lists every available property. ## Send To Many notification scenarios[​](#send-to-many-notification-scenarios "Direct link to Send To Many notification scenarios") The first scenario below applies to every store. The shipping confirmation scenarios depend on your send preset notification settings, so customize whichever ones your store actually uses. ### The aggregate order confirmation[​](#the-aggregate-order-confirmation "Direct link to The aggregate order confirmation") The billing customer always receives an order confirmation for the aggregate order, because that's the order that captured their payment. But no shipping confirmation ever follows it (it never ships), so a receipt that reads like a normal single-address order leaves the customer wondering whether the multi-address part worked at all. Use this email to do two things: confirm the order will ship separately to each recipient, and give the customer somewhere to track it all. ``` {% if tags contains "Send to Many aggregate" %} This was a multi-address order. Your gifts will ship separately to each recipient, and you won't get a shipping confirmation for this order number. {% endif %} ``` **Linking to the send details page.** If you've set up the [Customer Account Send History page](https://docs.sendtomany.com/customer-accounts/shopify-customer-send-history-page/.md), you can link the customer straight to their send from this email. The Sends page is a full-page customer account extension with a stable URL for your store. To find it, log in to a customer account on your storefront, open the Sends page from the account navigation, and copy the URL from your browser. It looks like: ``` https://shopify.com//account/pages/ ``` That URL alone takes the customer to their send history. To open the specific send directly, append `?send=` with the Send ID, which you can extract from the order's `Send to Many #` tag: ``` {% if tags contains "Send to Many aggregate" %} {% assign stm_send_id = "" %} {% for tag in tags %} {% if tag contains "Send to Many #" %} {% assign stm_send_id = tag | split: "#" | last %} {% endif %} {% endfor %} Track all of your gifts in your Send history {% endif %} ``` If the Send ID tag isn't on the order (see the timing note in the identification section above), the link simply opens the send history list instead, so it degrades gracefully. Before adding the link, confirm the extension is actually enabled: your store must be on Shopify's new customer accounts, and the Sends Page extension must be turned on in the customer account editor, since it isn't on by default. ### Shipping confirmations sent to the billing customer[​](#shipping-confirmations-sent-to-the-billing-customer "Direct link to Shipping confirmations sent to the billing customer") With the notification setting on CUSTOMER, the billing customer receives a shipping confirmation for every recipient order in the Send. Without customization, someone sending gifts to 20 people gets 20 shipping emails that look identical to a normal shipment of their own, with nothing to say which gift or which recipient each one covers. For checkout orders, use the `Send to Many Storefront-Child` tag to detect these and rewrite the copy around the recipient. This tag has no dynamic segment, so an exact match works directly (for upload orders, use the tag loop or gateway check from the identification section instead): ``` {% if tags contains "Send to Many Storefront-Child" %} One of the gifts from your multi-address order is on its way to {{ shipping_address.name }}. {% endif %} ``` `shipping_address` on a recipient order is the recipient's address, not the billing customer's, since Send To Many sets each recipient order's shipping address individually. That makes it a reliable place to pull the recipient's name for the subject line or body copy. ### Shipping confirmations sent to the gift recipient[​](#shipping-confirmations-sent-to-the-gift-recipient "Direct link to Shipping confirmations sent to the gift recipient") With the notification setting on RECIPIENT, common for corporate gifting and influencer seeding, each recipient gets their own shipping confirmation. This email is the recipient's first contact with your store, and Shopify's default copy doesn't tell them the two things they most need to know: that this is a gift, and who it's from. ``` {% assign is_stm_recipient_order = false %} {% for tag in tags %} {% if tag contains "Send to Many" and tag != "Send to Many aggregate" %} {% assign is_stm_recipient_order = true %} {% endif %} {% endfor %} {% if is_stm_recipient_order %} This gift is on its way from {{ customer.first_name }} {{ customer.last_name }}. {% endif %} ``` `customer` on a recipient order is the billing customer (the gift giver) unless the send preset is configured to use the recipient as the customer, so this is usually a reliable way to surface who sent the gift. Recipients can open the tracking link Shopify's order status link in the shipping confirmation includes a pre-authenticated token, so the recipient can open that specific tracking page straight from the email even though they aren't the order's customer. The carrier's own tracking link, also included in Shopify's default shipping confirmation, works for anyone with the email. ### Telling Upload and Checkout sends apart[​](#telling-upload-and-checkout-sends-apart "Direct link to Telling Upload and Checkout sends apart") If your store runs both Upload sends and storefront checkout sends, both produce recipient orders through the same Send To Many payment gateway, so the gateway alone can't tell them apart. The `Send to Many Storefront-Child` tag can: ``` {% if tags contains "Send to Many Storefront-Child" %} {% comment %} Storefront checkout recipient order {% endcomment %} {% else %} {% for tag in tags %} {% if tag contains "Send to Many" %} {% comment %} Upload recipient order {% endcomment %} {% endif %} {% endfor %} {% endif %} ``` ## Next steps[​](#next-steps "Direct link to Next steps") * [Customer Account Send History page](https://docs.sendtomany.com/customer-accounts/shopify-customer-send-history-page/.md): set up the Sends page so your aggregate order confirmation has somewhere useful to link. * [Bulk order notification settings](https://docs.sendtomany.com/checkout/shopify-multi-recipient-order-notifications/.md): control which of the shipping confirmation scenarios above apply to your store. * [Set up multi-recipient checkout](https://docs.sendtomany.com/tutorials/storefront-setup/set-up-multi-recipient-checkout/.md): configure the storefront checkout flow that generates the Storefront-Parent and Storefront-Child tags referenced above. --- # Create a Private Multi-Recipient Checkout for Repeat Corporate Gifting Customers Build a private, login-gated multi-recipient checkout for a Shopify B2B company, combining company accounts, Markets, and theme overrides in a dedicated config. Some of your best corporate gifting customers order again and again: realtors sending gifts to that month's new homeowners, companies sending birthday or work anniversary gifts to employees, or any business that sends batches of gifts several times a year. These relationships often come with negotiated pricing and customized products or bundles, sometimes with the company's own logo. Instead of handling every order through an inquiry or a spreadsheet upload, you can give that company its own private multi-recipient checkout. Their team logs in with a Shopify B2B account, sees only the products in their program at their pricing, adds recipients, and pays. Orders generate automatically. This tutorial combines three Shopify features (company accounts, Markets, and theme overrides) with one Send To Many feature (multiple checkout configurations) to build a self-serve gifting portal for a single company or a small group of companies. ## How the pieces fit together[​](#how-the-pieces-fit-together "Direct link to How the pieces fit together") * **Company accounts:** Shopify B2B companies give your customer's team logins tied to a company location. This is how Shopify knows who's shopping. * **Markets:** A market groups one or more company locations, so Shopify can treat those buyers as their own audience with their own pricing, theme content, and checkout behavior. * **Theme overrides:** Shopify calls this store contextualization. Using the **Market** dropdown in the theme editor, you can change what each market sees across your store: navigation links, sections, and entire pages. This is what keeps the private checkout private. * **Send To Many checkout configurations:** Each checkout configuration is an independent set of multi-recipient checkout settings. You can give the private checkout its own recipient fields, discounts, shipping rules, and order processing without touching your main checkout. ## Before you start[​](#before-you-start "Direct link to Before you start") * **Shopify plan:** Theme customization by market requires the Advanced plan or higher. Shopify Plus works best for this setup: it includes 50 markets, unlimited B2B catalogs, direct catalog assignment to company locations, and theme customization by customer type (B2B vs. D2C). On Basic and Grow you're limited to 3 markets and 3 active B2B catalogs total, so a market-per-company strategy runs out of room quickly. * **Send To Many plan:** Multiple checkout configurations require a Pro plan or higher. * **Multi-recipient checkout set up:** Your main multi-recipient checkout should already be working. If it isn't, start with [Setting Up Multi-Recipient Checkout](https://docs.sendtomany.com/tutorials/storefront-setup/set-up-multi-recipient-checkout/.md). ## Step 1: Create the company and add customers[​](#step-1-create-the-company-and-add-customers "Direct link to Step 1: Create the company and add customers") If your customer doesn't have a B2B company in your store yet, set one up: 1. In Shopify admin, go to **Customers > Companies** and click **Add company**. 2. Enter the company name and create at least one **company location**. The location holds the billing address, payment terms, and catalog assignments. 3. Add the people who will place orders as **customer contacts** and assign them to the location. 4. Send each contact an invitation so they can activate their B2B login. That's all this tutorial needs from the B2B side. For payment terms, vaulted cards, and how B2B works with Send To Many invoicing, see the tutorial [Shopify B2B Setup and Configuration](https://docs.sendtomany.com/tutorials/order-management/set-up-shopify-b2b/.md). ## Step 2: Create a B2B market for the company[​](#step-2-create-a-b2b-market-for-the-company "Direct link to Step 2: Create a B2B market for the company") Markets aren't just for countries. A market can represent a specific set of customers, which is exactly what we need here. 1. In Shopify admin, go to **Markets** and click **Create market**. 2. Name the market after the customer (e.g., "Acme Corp B2B"). 3. In the **Includes** section, click **Add condition** and select **Company locations**. Choose the company location(s) you created in Step 1. You can add several companies to one market if they should share the same experience. 4. Set the market to **Active** and save. Now Shopify recognizes logged-in buyers from that company as members of their own market. Everything else in this tutorial hangs off that. ## Step 3: Assign a catalog to the market (optional)[​](#step-3-assign-a-catalog-to-the-market-optional "Direct link to Step 3: Assign a catalog to the market (optional)") If the company gets special pricing or a limited product range, assign a catalog: 1. Open the market you just created and add a **catalog**. 2. In the catalog, set the products the company can buy and any price adjustments or fixed prices. Catalog pricing flows through automatically: the private checkout, product pages, and Send To Many invoicing all use the company's catalog prices. Catalog limits below Plus On Basic, Grow, and Advanced plans you can assign up to 3 active catalogs across all your B2B markets. Shopify Plus removes the limit and also allows assigning catalogs directly to company locations. ## Step 4: Build the private checkout page[​](#step-4-build-the-private-checkout-page "Direct link to Step 4: Build the private checkout page") The private page is a normal Shopify page with the Send To Many checkout app block on it. The only difference: shoppers outside the company's market won't see it. 1. In Shopify admin, go to **Online Store > Themes > Edit code** and create a new page template (e.g., `page.acme-checkout`). 2. In the theme editor, open the new template and add the **Send To Many checkout** app block. 3. Go to **Online Store > Pages**, create a page (e.g., "Acme Corp Gifting"), and assign it the new template. ## Step 5: Choose a checkout configuration[​](#step-5-choose-a-checkout-configuration "Direct link to Step 5: Choose a checkout configuration") A separate checkout configuration lets the private checkout behave differently from your main multi-recipient checkout: different recipient fields, different discounts, different order tags, B2B payment terms at checkout. You don't need a configuration per company. One shared configuration can serve all your B2B markets, since catalogs already handle each company's pricing and products. Create a dedicated configuration when a company's needs are truly specific: their own recipient fields, discount structure, or order tagging. 1. In Send To Many, open **Multi-recipient checkout** settings. 2. Use the configuration selector dropdown to create a new configuration and name it for its audience (e.g., "B2B checkout" or "B2B - Acme Corp"). 3. Adjust the settings your B2B customers need. Common choices: enable **Use payment terms at checkout for B2B customers** so their Net 30 terms apply, set dedicated order tags so their orders are easy to filter, and configure volume discounts that match their agreement. 4. Back in the theme editor, select this configuration from the dropdown in the checkout app block settings on your new template. See [Create multiple multi-recipient checkout configurations](https://docs.sendtomany.com/checkout/multiple-checkout-configurations/.md) for the full list of what each configuration controls. ## Step 6: Limit visibility with theme overrides[​](#step-6-limit-visibility-with-theme-overrides "Direct link to Step 6: Limit visibility with theme overrides") Right now the page exists for anyone who has the URL. Theme overrides control what each market actually sees: you can show or hide navigation links, sections, and entire pages per market. Shopify supports two approaches: ### Option A: Market override (Advanced and Plus)[​](#option-a-market-override-advanced-and-plus "Direct link to Option A: Market override (Advanced and Plus)") 1. In the theme editor, open your private page template. 2. Click the **Market** dropdown at the top of the theme editor and select your default market. 3. Hide the private page from this context. Hide any navigation links to it, and either hide the page's checkout section or replace it with a "log in to see your company's gifting options" message. 4. Switch the **Market** dropdown to the company's B2B market and make the page, its navigation link, and the checkout section visible. When Shopify asks to confirm the override, click **Continue**, then save. Regular shoppers never see the page in your navigation, and if they land on the URL they get the login prompt instead of the checkout. Logged-in company buyers land in their market context and see the full experience with their catalog pricing. You can even show the private page's link in the navigation just for them. ### Option B: Customer type override (Plus only)[​](#option-b-customer-type-override-plus-only "Direct link to Option B: Customer type override (Plus only)") On Shopify Plus, the theme editor can also customize by customer type, showing different content to B2B customers versus D2C customers. Use this when you want one rule for all B2B buyers rather than per-market rules: for example, showing the private checkout to every company account while hiding it from retail shoppers. Belt and suspenders Navigation links only appear for the right market, the page only renders its checkout in the right context, and catalog pricing only applies to logged-in company buyers. Even if the URL leaks, an outside shopper sees a login prompt instead of the company's checkout and pricing. ## Optional: Use collection mode to curate the product selection[​](#optional-use-collection-mode-to-curate-the-product-selection "Direct link to Optional: Use collection mode to curate the product selection") For an even more streamlined experience, put the checkout on a collection template instead of a page template. In collection mode, the checkout's cart section shows the products in the collection, so the company's buyers pick from their assortment and add recipients on the same page, without ever building a cart from your main storefront. 1. Create a collection containing only the products in the company's program (a natural fit for customized products or bundles you've built for them). 2. Create a collection template (e.g., `collection.acme-gifting`) and add the **Send To Many checkout** app block to it, with or without a dedicated configuration. 3. Assign the template to the company's collection, then apply the same market overrides from Step 6 to keep it private. ## Test the experience[​](#test-the-experience "Direct link to Test the experience") Before you share the URL, walk through it as the customer: 1. Log in to the storefront as one of the company's customer contacts (use a test contact you control). 2. Visit the private page. Confirm the checkout renders, products show catalog pricing, and the right configuration is active (check a setting unique to it, like a recipient field label). 3. Log out and visit the URL again. Confirm the page is hidden or shows your login message instead of the checkout. 4. Place a test order and confirm the aggregate order and recipient orders generate with the tags and settings from the dedicated configuration. ## Next steps[​](#next-steps "Direct link to Next steps") * [Shopify B2B Setup and Configuration](https://docs.sendtomany.com/tutorials/order-management/set-up-shopify-b2b/.md): payment terms, vaulted cards, and invoicing for company accounts * [Create multiple multi-recipient checkout configurations](https://docs.sendtomany.com/checkout/multiple-checkout-configurations/.md): everything each configuration controls * [Using Shopify B2B for Corporate Gifting](https://docs.sendtomany.com/invoicing/shopify-plus-b2b-corporate-gifting/.md): how B2B pricing and payment flow through Send To Many invoices * [Discounts in Multi-Recipient Checkout](https://docs.sendtomany.com/checkout/discounts-in-multi-recipient-checkout/.md): discount codes and volume tiers for the private checkout --- # Translate the Multi-Recipient Cart into Your Store's Languages Localize the multi-recipient cart for global shoppers: export the translation spreadsheet from Shopify, translate it, and import it back in minutes, no code. If your store sells in more than one language, the multi-recipient cart should too. A shopper who browses your storefront in French shouldn't hit an English-only page when they go to add recipients. Every shopper-facing string in the cart is translatable: field labels, buttons, the order summary, error messages, and the recipient cards. Translating used to mean editing strings one field at a time. Now you can export every string as a spreadsheet, translate it in one pass (we provide an AI prompt that handles the tricky parts), and import the finished file back. ![Send To Many multi-recipient cart page in Shopify showing the shopper-facing text covered by translations: cart, recipients, add-ons, and order summary](/assets/images/translate-multi-recipient-cart-page-9e8034daedf79e2881e7485647a27458.png) Everything shown above is covered by the translation spreadsheet, from the "Your cart" heading down to the "Upload recipients" button. ## Step 1: Add your languages[​](#step-1-add-your-languages "Direct link to Step 1: Add your languages") 1. In Shopify admin, go to **Send To Many > Settings > Text and translations**. 2. Add each language your storefront supports. Once a language is added, it appears as a column in the exported spreadsheet, and a language dropdown appears in the [checkout recipient field settings](https://docs.sendtomany.com/checkout/configure-checkout-core-settings/.md) for per-field editing. ## Step 2: Export the translation spreadsheet[​](#step-2-export-the-translation-spreadsheet "Direct link to Step 2: Export the translation spreadsheet") On the **Text and translations** page, open **Multi-recipient cart translations** and click **Export** (top right). You'll get one row per text string, with the string name in the first column, the English text next, and one column for each language you added. ![Multi-recipient cart translations settings page in Send To Many showing the Import and Export buttons, configuration selector, and language tabs for translating Shopify checkout text](/assets/images/multi-recipient-cart-translations-import-export-6e26a49a9c7a81de9011a5837068e859.png) Here's what a completed file looks like, translated into German, Spanish, French, Italian, Japanese, and Dutch: * [Example: multi-recipient cart translations (XLSX)](https://docs.sendtomany.com/files/translations/multi-recipient-cart-translations.xlsx) * [Example: customer account translations (XLSX)](https://docs.sendtomany.com/files/translations/customer-account-translations.xlsx) ## Step 3: Translate with the AI prompt[​](#step-3-translate-with-the-ai-prompt "Direct link to Step 3: Translate with the AI prompt") You can hand the spreadsheet to a translator, but modern AI tools do this well if you give them the right context. We've written a prompt that covers what trips up naive translation: keeping placeholders like `{count}` intact, choosing one consistent word for "Send," handling plural forms, matching your locale's checkout register, and using natural address terms for each country. [Download the Send To Many translation prompt (Markdown)](https://docs.sendtomany.com/files/translations/stm-translation-prompt) 1. Open the prompt file and copy everything below the divider line. 2. Paste it into your AI tool along with the exported spreadsheet. 3. State the target language, and repeat per language. 4. Paste or import the results into the matching language columns of your spreadsheet. tip Work one language at a time and skim the output before moving on. The prompt asks the AI to flag strings it was unsure about, so check those first. ## Step 4: Import the completed spreadsheet[​](#step-4-import-the-completed-spreadsheet "Direct link to Step 4: Import the completed spreadsheet") Back on the **Multi-recipient cart translations** page, click **Import** and upload your completed spreadsheet. The app matches rows by string name and fills in each language. Spot-check a few strings per language in the settings UI to confirm the import landed where you expected. warning If you're on the Enterprise plan and use multiple cart configurations, translations are loaded per configuration. Use the **Configuration** dropdown at the top of the page and repeat the import for each cart configuration that serves a translated market. ## Step 5: Verify on your storefront[​](#step-5-verify-on-your-storefront "Direct link to Step 5: Verify on your storefront") Switch your storefront to each language and walk through the multi-recipient cart end to end: add a recipient, open the product selector, apply a discount code, and trigger a validation error or two. Confirm buttons still fit their labels and nothing reads as literal, word-for-word English. ## Customer account pages[​](#customer-account-pages "Direct link to Customer account pages") The same export, translate, and import flow applies to the customer account extensions: the Sends list, the Send detail page, and order banners. Use the customer account example file above as a reference, and see [customer account Sends page text customization](https://docs.sendtomany.com/customer-accounts/shopify-customer-send-history-page/.md) for what's covered. ## What's next[​](#whats-next "Direct link to What's next") * [Configure multi-recipient checkout recipient fields](https://docs.sendtomany.com/checkout/configure-checkout-core-settings/.md) to edit individual field labels per language * [Set up multiple cart configurations](https://docs.sendtomany.com/checkout/multiple-checkout-configurations/.md) if different markets need different checkout behavior --- # Import Your First Bulk Order into Shopify Create your first multi-recipient order in minutes. Upload a spreadsheet, validate addresses, calculate shipping, and generate Shopify orders automatically. Let's walk through creating your first Send using the Upload workflow, the most straightforward way to get started with bulk multi-recipient orders. ## Step 1: Details & Upload[​](#step-1-details--upload "Direct link to Step 1: Details & Upload") ![Send To Many app home screen in Shopify showing options to create a new bulk order Send](/assets/images/quickstart-home-62af6c2b56eec48b33cac4c6802ac70c.png) Open Send To Many and click Create Send for your situation. Fill in a name for your Send and choose a Send preset — this is a preset configuration that controls how orders are generated and invoiced. For your first Send, General Import is a safe choice. Next, upload your spreadsheet. Your file should have one row for each recipient with their address and other details you need. [This Google Sheet](https://docs.google.com/spreadsheets/d/1jqVeDw0IUQq9n40F1uNhhMY7ozqpiN_4JGa-5rawIjk/) has a variety of sample import tabs to get started. See the [bulk order upload formatting guide](https://docs.sendtomany.com/upload/bulk-order-spreadsheet-format/.md) for the exact template and requirements. ![Send To Many upload step showing a bulk order spreadsheet with recipient names and addresses imported into Shopify](/assets/images/quickstart-step-1-133bafe5db7e785bce7e405ba9b1dee4.png) ## Step 2: Products[​](#step-2-products "Direct link to Step 2: Products") Select the products you want to send to each recipient. You can choose one product or multiple products — Send To Many will apply them to all recipients in your spreadsheet. Browse your Shopify catalog or search by product name. If you need to assign different products to different recipients, add a product column to your spreadsheet. The system will match them when processing orders. If a product assignment needs to change later, you can update an individual recipient's products on the Review and Finalize steps, and totals will recalculate. ![Send To Many product selection step showing Shopify products assigned to bulk order recipients](/assets/images/quickstart-step-2-1981cea64f643e67c880e306c67c34d1.png) ## Step 3: Validate Addresses[​](#step-3-validate-addresses "Direct link to Step 3: Validate Addresses") Send To Many now checks your spreadsheet for completeness. It verifies that all required fields are present and shipping addresses are valid. If there are any issues, you'll see them flagged here. We'll offer suggestions to improve addresses or let you know if we can't find a match. Accept suggestions or edit the address using auto-complete. Or exclude a recipient if you can't find a match. ![Send To Many address validation step checking recipient shipping addresses for a Shopify bulk order](/assets/images/quickstart-step-3-98bf2e4aa40e94a4e63e33515a450400.png) ## Step 4: Select Shipping Rates[​](#step-4-select-shipping-rates "Direct link to Step 4: Select Shipping Rates") With the addresses and products confirmed, we will now calculate all the available shipping rates for each recipient. You can apply rates to all the applicable recipients in batches or update the rates for individual recipients. You can also bulk apply a custom rate to any selection of recipients. ![Send To Many shipping step calculating per-recipient shipping rates for a Shopify bulk order](/assets/images/quickstart-step-4-3782ca8bc23ff3ab3a748c0e3cad6dfc.png) ## Step 5: Finalize[​](#step-5-finalize "Direct link to Step 5: Finalize") Review your Send at a glance: gifter details and recipient counts, total products, etc. You can adjust the shipping notifications for this send or add a tag to the orders in this Send. ![Send To Many finalize step showing bulk order summary with totals before generating Shopify orders](/assets/images/quickstart-step-5-110ade538a2587b74213cc57088af924.png) This is your last chance to make changes before generating orders, and you can make them right here: add a recipient (with address autocomplete, product, and shipping rate selection), update an individual recipient's products, or add a discount code or custom discount. Totals recalculate with each change. ![Send To Many recipients table on the finalize step with options to add a recipient, edit products per recipient, and export to CSV](/assets/images/forgiving-upload-workflow-2-5145811e790b335da5c534d45773b30e.png) You can preview individual orders in the recipient section and even generate an individual order or two to confirm everything is working as you want it. ![Send To Many order preview showing individual recipient order details before Shopify order generation](/assets/images/quickstart-step-5-preview-8c6ecde8af8d3b51ae3791e33cd12c16.png) At this stage you can also generate an aggregate invoice as a draft order in Shopify to send to your customer to collect payment. ![Send To Many generating an aggregate invoice as a Shopify draft order for bulk payment collection](/assets/images/quickstart-step-5-invoice-05b8366a1d8ee61b6ba76557f6c31611.png) Click Generate Orders. Send To Many creates a gifter order (aggregating the entire Send) and individual recipient orders for each row in your spreadsheet. It takes a second, your Send is live in the dashboard and ready to track. ![Send To Many generating individual Shopify orders for each recipient in a bulk Send](/assets/images/quickstart-step-5-generating-16c28dbb43a5df77e5108cf7df757397.png) ## You're Done[​](#youre-done "Direct link to You're Done") Your Send is now complete and orders have been generated in your Shopify store. ![Shopify orders list showing generated Send To Many bulk recipient orders](/assets/images/quickstart-orders-list-0b1bce08f36c6c2849d901feafbf212e.png) In the Send To Many "Manage Sends" page, you'll see your completed order and can click through to the summary page. ![Send To Many Manage Sends dashboard showing completed bulk order imports in Shopify](/assets/images/quickstart-manage-sends-8b99e813375a59ca3b2540f0e297ffd4.png) From here, you can monitor recipient order statuses, manage fulfillment, and export tracking information. ![Send To Many Send summary page showing recipient order statuses and fulfillment tracking in Shopify](/assets/images/quickstart-send-summary-e198e23ebb2df051e9cfedbbb6f9574b.png) Next, explore the [multi-recipient checkout workflow](https://docs.sendtomany.com/checkout/shopify-multi-recipient-checkout/.md) if you want customers to add recipients at checkout, or check out the [full upload and order import guide](https://docs.sendtomany.com/upload/bulk-order-spreadsheet-format/.md) to understand all the options for generating and managing orders and for specific use cases. --- # ShipStation + Send To Many: Fulfill Bulk Orders from Shopify Configure ShipStation to import and fulfill Send To Many recipient orders while filtering out aggregate orders that don't need shipping. Send To Many generates standard Shopify orders for each recipient in a Send, so they flow into fulfillment tools like ShipStation just as any other order would. The main thing to get right is making sure ShipStation only picks up the **recipient orders** (the ones that need to be shipped) and skips the **aggregate order** (the parent order that captures payment but doesn't ship anything). This article walks you through configuring ShipStation to work cleanly with Send To Many orders. ## How Send To Many orders appear in Shopify[​](#how-send-to-many-orders-appear-in-shopify "Direct link to How Send To Many orders appear in Shopify") When you generate orders for a Send, two types of Shopify orders are created: * **Recipient orders:** One per recipient, each with its own shipping address, products, and shipping rate/method. These are the orders ShipStation needs to fulfill. * **Aggregate (gifter) order:** A single order that captures the total revenue for the Send. It uses custom line items (not your catalog products), is tagged "Send to Many aggregate", and is marked "Does not require shipping." Recipient orders look and behave like regular Shopify orders. They have real shipping addresses, real products, and flow into fulfillment workflows normally. The aggregate order is the one you need to keep out of ShipStation. Aggregate orders may be filtered automatically ShipStation typically does not import Shopify orders marked "Does not require shipping." Since aggregate orders carry this flag, they may never appear in your ShipStation queue at all. We still recommend setting up an automation rule as a safety net, especially if your ShipStation configuration has been customized. ## Filtering aggregate orders out of ShipStation[​](#filtering-aggregate-orders-out-of-shipstation "Direct link to Filtering aggregate orders out of ShipStation") Even if ShipStation skips aggregate orders by default, it's good practice to have a backup filter in place. Here are three options, from most to least aggressive. ### Option 1: Cancel the order in ShipStation[​](#option-1-cancel-the-order-in-shipstation "Direct link to Option 1: Cancel the order in ShipStation") ShipStation automation rules run on every order as it imports. You can create a rule that automatically cancels aggregate orders on arrival. 1. In ShipStation, go to **Settings** > **Automation**. 2. Click **Add New Rule**. 3. Set the criteria: **Order Tags** > **Includes** > `Send to Many aggregate`. 4. Set the action: **Cancel Order**. 5. Save the rule and make sure it's positioned above any other rules that might act on these orders first. Cancelling an order in ShipStation only removes it from your shipping queue. It does not cancel the order in Shopify. The aggregate order stays fully intact in your Shopify admin, with its revenue and payment status unchanged. ### Option 2: Tag and filter[​](#option-2-tag-and-filter "Direct link to Option 2: Tag and filter") If you'd rather keep aggregate orders visible in ShipStation but out of your day-to-day workflow: 1. Create an automation rule (as above) but set the action to **Add Tag** with something like `do-not-ship`. 2. In the ShipStation orders grid, click **Saved Filters** > **Manage Filters**. 3. Create a filter that excludes orders tagged `do-not-ship`. 4. Save and apply the filter as your default view. This keeps your shipping queue clean while still letting you find aggregate orders if you ever need to look them up. ### Option 3: Archive[​](#option-3-archive "Direct link to Option 3: Archive") You can also create an automation rule that moves aggregate orders directly to the **Shipped/Completed** status (effectively archiving them), so they skip the queue entirely and land in your completed orders. Import Shopify tags into ShipStation By default, ShipStation doesn't import Shopify order tags automatically. To enable this, go to your Shopify store settings in ShipStation, click **Edit Shopify Settings**, and map Shopify order tags to one of ShipStation's custom fields. Once mapped, you can use those tags in automation rules and filters. ## Configuring recipient orders for smooth fulfillment[​](#configuring-recipient-orders-for-smooth-fulfillment "Direct link to Configuring recipient orders for smooth fulfillment") Recipient orders are standard Shopify orders, so ShipStation handles them normally. There are a few Send To Many settings worth configuring to make the experience seamless. ### Order tags for routing[​](#order-tags-for-routing "Direct link to Order tags for routing") Send To Many lets you apply tags to every recipient order in a Send. You can use static tags (e.g., "Corporate Gift") and dynamic variables (e.g., the send ID or customer name). These tags carry over to ShipStation and can drive automation rules for carrier selection, warehouse routing, or priority handling. Configure order tags in your [Send preset settings](https://docs.sendtomany.com/settings/shopify-bulk-order-generation-settings/.md). Common patterns: * Tag by use case: `Corporate Gift`, `Influencer Send`, `Holiday Campaign` * Tag by customer: use the dynamic customer first and last name variables so each Send's orders are tagged with the gifter's name ### Shipping method mapping[​](#shipping-method-mapping "Direct link to Shipping method mapping") When you use **calculated shipping rates** in Send To Many, each recipient order includes the selected shipping method name (e.g., "USPS Priority Mail" or "UPS Ground"). ShipStation can read the requested shipping service from the Shopify order and match it to a ShipStation carrier and service. To set this up in ShipStation: * Go to your Shopify store settings in ShipStation. * Look for the **Requested Shipping Service Mapping** section. * Map the shipping service names that Send To Many uses to the corresponding ShipStation carrier services. If you use **fixed-rate shipping** in Send To Many, the shipping method name is whatever you set in your Send preset (e.g., "Standard Shipping"). Make sure ShipStation has a mapping for that name, or set up an automation rule to assign the correct carrier service based on the tag or order properties. ### Revenue handling: $0 vs. calculated recipient orders[​](#revenue-handling-0-vs-calculated-recipient-orders "Direct link to Revenue handling: $0 vs. calculated recipient orders") How you configure order revenue handling in Send To Many affects what ShipStation sees on each recipient order. **Calculated recipient orders (default for revenue-generating Sends):** Recipient orders show the full product price, tax, and shipping. This is the standard setup and gives your fulfillment team or 3PL visibility into pricing on packing slips. It's also necessary if you need line-item values for customs declarations on international shipments. **$0 recipient orders:** Recipient orders show $0 line items. Revenue lives only on the aggregate order. This can simplify fulfillment reporting since ShipStation won't show revenue totals across your recipient orders. However, note that some ShipStation configurations may treat $0 orders differently during import, so test this with your setup before using it at scale. Choose the option that fits your reporting and fulfillment needs. See [What Happens After You Generate Orders](https://docs.sendtomany.com/orders/shopify-bulk-order-tracking-and-fulfillment/.md) for more detail on how orders work. ### Shipping notifications[​](#shipping-notifications "Direct link to Shipping notifications") If ShipStation is handling your shipping confirmation emails, you'll want to suppress Shopify's built-in notifications to avoid duplicates. Send To Many's [shipping notification settings](https://docs.sendtomany.com/checkout/shopify-multi-recipient-order-notifications/.md) let you suppress Shopify's order confirmation and shipping emails at the Send preset level. Set notifications to **Suppress** and let ShipStation handle the communication instead. When notifications are suppressed, Send To Many sets the contact email on recipient orders to a blackhole address (`suppressed+XXXX@sendtomany.com`). This means ShipStation will see that address as the order's email. If ShipStation's customer notification emails are enabled, they'll be sent to the blackhole address and go nowhere, which is the intended behavior. No one receives an unwanted email. If you're using ShipStation to send shipping notifications (rather than suppressing them), make sure the notification setting in Send To Many is set to **Recipient** so that the real recipient email appears on the order for ShipStation to use. Test your notification setup before your first Send If both Shopify and ShipStation send shipping confirmation emails, recipients will get duplicates. Decide which system sends notifications and disable the other. We recommend thorough testing of your notification flow with a small test Send before running a large batch. ## Identifying Send To Many orders in ShipStation[​](#identifying-send-to-many-orders-in-shipstation "Direct link to Identifying Send To Many orders in ShipStation") All Send To Many orders share a few consistent properties you can use for filtering and automation: * **Payment gateway:** "Send to Many" * **Order tags:** Configurable per Send, plus the automatic "Send to Many aggregate" tag on parent orders * **Custom fields:** If you've mapped Shopify tags to a ShipStation custom field, you can filter on any tag value These identifiers make it straightforward to build automation rules that treat Send To Many orders differently from your regular storefront orders when needed. ## Summary[​](#summary "Direct link to Summary") | Order type | Ships? | Tagged | What to do in ShipStation | | ------------------------ | ------ | ----------------------------------------------------------------------- | ------------------------------------------------ | | Recipient orders | Yes | "Send To Many #XXXXX" plus any configured tags (e.g., "Corporate Gift") | Fulfill normally. Use tags for automation rules. | | Aggregate (gifter) order | No | "Send to Many aggregate" | Filter out via automation rule or saved filter. | ## Next steps[​](#next-steps "Direct link to Next steps") * [What Happens After You Generate Orders](https://docs.sendtomany.com/orders/shopify-bulk-order-tracking-and-fulfillment/.md) for the full order lifecycle * [Managing Aggregate Orders](https://docs.sendtomany.com/orders/shopify-aggregate-gifter-order-management/.md) for more on handling parent orders in Shopify * [Working with Shopify Flow](https://docs.sendtomany.com/integrations/shopify-flow-bulk-order-automation/.md) for automating order routing alongside ShipStation --- # Set Up Delivery Digest Emails with Shopify Flow and Klaviyo Send bulk order gifters one daily shipping update per Send instead of an email per shipment. Build the digest with the Send To Many Flow trigger, Klaviyo, and a deep link to the customer's Send history. Beta feature The delivery digest is in beta. Everything in this tutorial works today, but field names, timing, and defaults may change based on feedback before the holiday season. The digest runs independently of your [shipping notification settings](https://docs.sendtomany.com/checkout/shopify-multi-recipient-order-notifications/.md): turning it on doesn't change whether we suppress Shopify's own emails. We currently pass the billing customer's email; the order contact email, which can differ, will be added. When a gifter sends 100 gifts from your store, you don't want to send them 200 or 300 shipping emails. The delivery digest gives them one email a day per Send: how many shipments went out, how many arrived, and any that need attention, with a link to the full recipient list in their customer account. This tutorial builds the digest end to end with Shopify Flow and Klaviyo. If you use a different email platform, the Flow side is identical and the Klaviyo steps translate to a **Send HTTP request** action instead. ## Before You Start[​](#before-you-start "Direct link to Before You Start") * **Shopify Flow** installed on your store. * **Klaviyo** connected to Shopify, with the Klaviyo Flow actions available. * The [Sends page customer account extension](https://docs.sendtomany.com/customer-accounts/shopify-customer-send-history-page/.md) enabled. The digest links there, and without it the email has nowhere useful to send the gifter. ## How the Digest Works[​](#how-the-digest-works "Direct link to How the Digest Works") The digest is built on a Shopify Flow trigger, **Send fulfillment status changed**, that we fire once each morning for every Send with delivery activity in the previous 24 hours. The trigger carries the counts. Your email tool turns them into a message. ### The digest is a rollup, not a list[​](#the-digest-is-a-rollup-not-a-list "Direct link to The digest is a rollup, not a list") The trigger tells you how many recipient orders and shipments are in each state. It does not include recipient names, addresses, order IDs, or tracking numbers. That's deliberate. A Send can have thousands of recipient orders, and no email should try to render thousands of rows. The counts go in the email. A link takes the gifter to the Sends page in their customer account, where every recipient, status, and tracking number already lives. ### When the digest runs[​](#when-the-digest-runs "Direct link to When the digest runs") We run the digest once a day at 12:00 UTC. The time is fixed during the beta. Each run looks back over the previous 24 hours and fires once per Send. A Send with 40 recipient orders that all shipped overnight produces one trigger, not 40. If nothing changed for a Send that day, no trigger fires for it. A Send is included when all of the following are true: * **Recent activity:** at least one recipient order in the Send had a carrier-reported shipment status change in the last 24 hours (In transit, Out for delivery, Delivered, Delayed, and so on). * **Send is finished:** the Send status is Finished. Sends still being validated or generated are skipped. * **An active Flow uses the trigger:** until you save the trigger in an active workflow, we don't evaluate or fire it for your store at all. A recipient order that goes from unfulfilled to fulfilled but has no carrier status yet won't pull its Send into that morning's digest on its own. The Send appears once the carrier starts reporting. The digest works for manual uploads, storefront checkout Sends, and Sends created from inquiries. ## Step 1: Turn on the Trigger with a Test Workflow[​](#step-1-turn-on-the-trigger-with-a-test-workflow "Direct link to Step 1: Turn on the Trigger with a Test Workflow") There's no digest setting inside Send To Many. Shopify Flow controls it entirely: creating and activating a workflow turns the digest on, and deactivating that workflow turns it off. Flow can't generate a test event for this trigger, and there's no event history to replay. So the first workflow you build should do something harmless and give you real payloads to design against. 1. Open **Shopify Flow** from your Shopify admin and click **Create workflow**. 2. Click **Select a trigger**, find **Send To Many** in the app list, and choose **Send fulfillment status changed**. 3. Add a simple action: **Send internal email** to yourself, or **Add row to Google Sheets**. Include a few variables such as **Send name**, **Changed statuses summary**, and **Current statuses summary**. 4. Turn the workflow on. ![Shopify Flow workflow with the Send fulfillment status changed trigger connected to a Log output action printing overall status, summaries, and customer email](/assets/images/delivery-digest-test-flow-log-output-6c3f5b2c7f4a0d698d322728664d0d90.png) Let this run for a few mornings while Sends ship. You'll see exactly which Sends fire, what the summaries look like, and how the counts behave when shipments split or carriers lag. Then come back and build the real thing. Limit the digest to certain Sends The trigger fires for uploads, storefront checkout Sends, and Sends created from inquiries. If you only want the digest for some of them, add a condition on **Send source** or **Send preset name** right after the trigger. ## What the Trigger Sends You[​](#what-the-trigger-sends-you "Direct link to What the Trigger Sends You") Every field below is available as a variable in your Flow conditions and actions. Use this as your reference when mapping properties in Step 2. ### Send details[​](#send-details "Direct link to Send details") * **Customer:** the gifter on the Send. Flow resolves this into the full Shopify customer object, so you can read email, first name, and anything else you need. Empty if the Send has no gifter. * **Send ID:** the Send To Many Send ID, for example 15145. Append it to the customer account Sends page link to deep-link the gifter to their Send (see Step 5). * **Send name:** the name given to the Send. * **Send preset name:** which Send preset was used, for example "Corporate Gifting". Empty if none. * **Send source:** manual, storefront, or inquiry. * **Assigned user email:** the team member assigned to the Send. * **Parent order ID** and **Parent order name:** the aggregate (gifter) order, for example #535923. Empty if the Send has no aggregate order. ### Order counts[​](#order-counts "Direct link to Order counts") These count recipient orders. Aggregate orders are excluded. * **Total orders:** recipient orders in the Send. * **Total shipments:** fulfillments across those recipient orders. This can be higher than Total orders when shipments split, or lower when some orders haven't shipped. * **Orders with status changes:** recipient orders that had a shipment status change in the last 24 hours. This is your "what's new" number. * **Orders all shipments delivered:** recipient orders where every shipment arrived. * **Orders with shipments in progress:** recipient orders with at least one shipment still moving. * **Orders with no shipments:** recipient orders that haven't shipped yet. "Not yet shipped" reads well for gifters. * **Orders fulfilled**, **Orders partially fulfilled**, and **Orders unfulfilled:** counts by Shopify fulfillment status rather than carrier status. ### Shipment status counts[​](#shipment-status-counts "Direct link to Shipment status counts") These describe where every shipment in the Send stands right now, not just what changed. They always add up to Total shipments. * **Shipments delivered** * **Shipments in transit** * **Shipments out for delivery** * **Shipments confirmed:** a label exists and the carrier has accepted the shipment. * **Shipments ready for pickup** * **Shipments delayed** * **Shipments attempted delivery** * **Shipments failed delivery** * **Shipments returning to sender** * **Shipments without shipment status:** a fulfillment exists but the carrier hasn't reported yet. This is not an error. * **Shipments unknown status:** any carrier status we don't have a bucket for. Rare, and worth alerting your team about if you see it. ### Summary fields[​](#summary-fields "Direct link to Summary fields") * **Changed statuses summary:** plain-English text covering only the last 24 hours, for example "3 shipments to Delivered, 1 shipment to Failed delivery". Sorted by count, highest first. Empty if nothing changed. * **Current statuses summary:** the same idea for the whole Send as it stands now, for example "12 Delivered, 3 In transit". * **Overall fulfillment status:** a single value summarizing the Send. One of `not_started`, `tracking_added`, `in_progress`, `partially_delivered`, `has_delivery_issues`, `all_delivered`. It's `has_delivery_issues` whenever any shipment is delayed, failed, attempted delivery, or returning to sender, which makes it the easiest field to branch on (see Step 6). ## Step 2: Send the Event to Klaviyo[​](#step-2-send-the-event-to-klaviyo "Direct link to Step 2: Send the Event to Klaviyo") Shopify Flow has its own **Send marketing email** action, but it only reaches customers opted into email marketing. A delivery digest is most likely transactional (confirm with your legal team or a trusted expert), so a dedicated email tool is the better route. 1. In your workflow, remove or disconnect the test action and add the Klaviyo **Track an event** action. 2. Name the event something stable and readable, like **Send Delivery Digest**. This becomes the metric your Klaviyo flow triggers from, so avoid renaming it later. 3. For the profile identifier, select **Customer > email** from the variable picker. The payload carries a customer reference rather than a raw email string, and Flow resolves it for you. 4. Map your event properties. Map more than you think you need, since unused properties cost nothing and you'll want them when you iterate on the template. A reasonable starting set: * `send_id`, `send_name`, `parent_order_name` * `total_orders`, `total_shipments`, `orders_with_changes`, `orders_not_shipped` * `delivered`, `in_transit`, `out_for_delivery` * `delayed`, `attempted`, `failed`, `returning` * `changed_summary`, `current_summary`, `overall_status` * `assigned_user_email` ![Shopify Flow workflow for the Send To Many delivery digest with the Send fulfillment status changed trigger connected to the Klaviyo Track an Event action](/assets/images/delivery-digest-flow-klaviyo-track-event-6589dfa802addbde366a9bac14383cfe.png) ## Step 3: Build the Klaviyo Flow[​](#step-3-build-the-klaviyo-flow "Direct link to Step 3: Build the Klaviyo Flow") 1. In Klaviyo, create a new flow with a **Metric** trigger set to your event name. 2. Put the email action immediately after the trigger. The daily trigger already batches the updates, so a Klaviyo delay only makes the digest stale. 3. Turn **Smart Sending** off. Otherwise a gifter who received a campaign that week gets skipped. 4. Assuming this is a transactional email, remove the default profile filter requiring a subscribed consent status. ## Step 4: Write the Digest Template[​](#step-4-write-the-digest-template "Direct link to Step 4: Write the Digest Template") Reference properties with standard Klaviyo syntax, for example `{{ event.changed_summary }}` and `{{ event.total_orders }}`. Four things worth doing: * **Keep the subject line fresh.** Include the count of orders with changes, so a gifter can tell today's email from yesterday's at a glance. * **Suppress zero rows.** Wrap each status row in a conditional so the gifter never reads "Failed delivery: 0". * **State the totals more than once.** Put the recipient count in the opening paragraph and again as a total row in the table. * **Use one call to action.** Link to the Send detail page and label it for what the gifter gets, such as "View delivery status for every recipient in this order". ![Sample delivery digest email showing what changed, a status table with delivered, out for delivery, in transit, and not yet shipped counts, and a View all recipient statuses button](/assets/images/delivery-digest-sample-email-71461bf7ce1c6be72d12240c02d5eb2d.png) ## Step 5: Deep Link to the Sends Page[​](#step-5-deep-link-to-the-sends-page "Direct link to Step 5: Deep Link to the Sends Page") The email carries the counts. The Sends page in the gifter's customer account carries everything else: each recipient, their delivery status, and tracking numbers. A link straight to the Send is what makes the digest useful. The URL looks like one of these, depending on whether your store uses a custom account domain: ``` https://account.yourstore.com/pages/019d0bdc-632f-7d0e-8d6b-f88d44xxxxxx/?send={{ event.send_id }} https://shopify.com/62988xxxxx/account/pages/019d0bdc-632f-7d0e-8d6b-f88d44xxxxxx/?send={{ event.send_id }} ``` The long page ID is set by Shopify and is unique to the Send To Many Sends page in your store, not to each customer. To find it, log in to your storefront as a customer, open the Sends page from the account menu, and copy the URL. Then append `?send=` followed by the Send ID property from your event. See [Linking Directly to a Send](https://docs.sendtomany.com/customer-accounts/shopify-customer-send-history-page/.md#linking-directly-to-a-send) for more on this URL. ![Browser address bar on the customer account Sends page showing the page ID and ?send= Send ID parameter in the URL](/assets/images/delivery-digest-sends-page-url-send-id-863ab37e50a1cc9305c3a61f18b67e63.png) Gifters need to be logged in The Sends page only resolves for the gifter who owns the Send, and only while they're signed in. The link is safe to email, but expect a login step. Say so in the email so the click doesn't feel broken. ## Step 6: Route Delivery Problems to Your Team[​](#step-6-route-delivery-problems-to-your-team "Direct link to Step 6: Route Delivery Problems to Your Team") Decide how you want to handle failures before you launch. This is where the digest either saves you support tickets or creates them. The trigger flags problems for you. **Overall fulfillment status** is `has_delivery_issues` whenever any shipment in the Send is delayed, failed, attempted delivery, or returning to sender. One condition on that value catches every problem case. If you need more detail, the four underlying counts are **Shipments failed delivery**, **Shipments attempted delivery**, **Shipments returning to sender**, and **Shipments delayed**. They also show up as readable text in both summary fields. Questions to settle first: * **Does the gifter hear about failures, or do you?** A gifter who gets an automated "1 shipment failed delivery" with no explanation and no next step will call you. Some merchants would rather catch it internally and reach out personally. * **If the gifter does hear about it, what should they do?** Provide a corrected address, wait, or nothing at all. Say it explicitly. A count with no instruction produces a support ticket. * **Should a failure change the tone of the email?** "Your gifts are on the move" reads badly above a returning-to-sender row. Consider a different subject line or template when any problem count is above zero. * **Is a delay the same as a failure?** Usually not. Delays often resolve themselves. Failed delivery and returning to sender need a person. The `has_delivery_issues` flag includes delays, so if you'd rather not alert on those, branch on the individual counts instead. To alert your team, add a second branch to the same Flow workflow: 1. Add a **Condition** checking whether **Overall fulfillment status** equals `has_delivery_issues`. To leave delays out, check instead whether **Shipments failed delivery**, **Shipments attempted delivery**, and **Shipments returning to sender** add up to more than zero. 2. In the true branch, send an internal notification to the address in **Assigned user email**, using whichever channel your team actually watches (internal email, Slack, or Teams via HTTP request). 3. Include the **Send ID**, a link to the Send in Send To Many, **Send name**, **Parent order name**, the problem counts, and the same customer account link, so the assigned person can open the Send and see exactly which recipients failed. 4. Optionally, pass **Overall fulfillment status** to Klaviyo as an event property and use it in the template to switch subject line and tone, or add a condition on the gifter branch so that Sends with problems that day get a softer email (or none) and let the assigned person reach out directly. ## Step 7: Wait for the First Real Digest[​](#step-7-wait-for-the-first-real-digest "Direct link to Step 7: Wait for the First Real Digest") 1. Save and turn on the workflow. 2. Wait for the next 12:00 UTC run with at least one Finished Send that had a carrier status change in the previous 24 hours. 3. In Shopify Flow, open the workflow's run history to confirm it fired. 4. In Klaviyo, open the gifter's profile and check the **Send Delivery Digest** event and its properties, then confirm the email went out. If a Send you expected doesn't appear, check the [inclusion conditions](#when-the-digest-runs): the Send must be Finished, and a fulfillment with no carrier status yet doesn't count as activity until the carrier starts reporting. ## Using Other Email Platforms[​](#using-other-email-platforms "Direct link to Using Other Email Platforms") If you use SendGrid, Postmark, Customer.io, or your own transactional templates, replace the Klaviyo action in Step 2 with Flow's **Send HTTP request** action and post the payload to your endpoint. Everything else in this tutorial applies as written. The same approach works for any inbound webhook, including Slack or Teams channels for internal visibility. The field list is identical regardless of destination. ## Next Steps[​](#next-steps "Direct link to Next Steps") * [Order & Shipping Notifications](https://docs.sendtomany.com/checkout/shopify-multi-recipient-order-notifications/.md): how the digest fits alongside suppression and per-order notification settings. * [Shopify Flow Automation for Bulk & Multi-Recipient Orders](https://docs.sendtomany.com/integrations/shopify-flow-bulk-order-automation/.md): the other Send To Many Flow triggers and order-based patterns. * [Customer Account Extensions: Sends Page & Order Send Banner](https://docs.sendtomany.com/customer-accounts/shopify-customer-send-history-page/.md): set up the page the digest links to. * [How to Customize Shopify Notifications for Send To Many Orders](https://docs.sendtomany.com/tutorials/advanced/customize-shopify-notification-templates/.md): make the gifter's order confirmation match the digest experience. --- # Managing Corporate Gifting Inquiries: Submission to Invoice The complete workflow for turning inquiry form submissions into Sends. Review submissions, refine recipient data, generate invoices, and collect payment. When a customer submits your inquiry form, your team gets notified and the inquiry appears in Send To Many ready for action. This article covers the full workflow your sales or customer service team follows to turn an inquiry into a completed Send with generated orders and an invoice. ## Getting Notified[​](#getting-notified "Direct link to Getting Notified") Every email address you configured in your [inquiry form notification settings](https://docs.sendtomany.com/inquiry-form/configure-corporate-gifting-form/.md#notifications) receives an email as soon as the form is submitted. The notification includes the customer's name, email, and company so you can identify the inquiry at a glance. If multiple team members are set up for notifications, everyone receives the same email. Whoever picks it up first can assign it to themselves in the app. ## Opening the Inquiry[​](#opening-the-inquiry "Direct link to Opening the Inquiry") Open the Send To Many app and go to the **Manage Sends** page. Inquiries appear in the list alongside other Sends, marked with their source so you can tell them apart. Click the inquiry to open it. You'll see everything the customer submitted: * **Contact information:** Name, email, phone, and company. * **Form responses:** Every field from your form: product interest, quantity, date needed, special instructions, and any other custom fields you configured. * **Uploaded files:** If the customer attached a recipient address spreadsheet or company logo, the files are listed and ready to use. ## What Happens Automatically[​](#what-happens-automatically "Direct link to What Happens Automatically") Before you take any action, Send To Many has already done some setup: * **Customer created in Shopify:** If no Shopify customer exists with the submitter's email address, we create one automatically. If a customer already exists, we associate the inquiry with their existing account. Either way, the customer is pre-linked to the inquiry, so you don't need to search for or assign them. If your form includes the [customer address field](https://docs.sendtomany.com/inquiry-form/configure-corporate-gifting-form/.md#the-customer-address-field) (Pro and Enterprise plans), the submitted address is saved as a new customer's default address. For existing customers, it's set as the billing address on the Send instead. Either way, the billing address is already on file. * **Address file queued:** If the customer uploaded a recipient spreadsheet, it's attached to the inquiry and queued for import. You don't need to download and re-upload it. When you proceed to the upload step, the file is already there. ## Step 1: Review Details and Configure the Send[​](#step-1-review-details-and-configure-the-send "Direct link to Step 1: Review Details and Configure the Send") On step 1 of the Send wizard, review and update the Send details: * **Send preset:** Select the appropriate send preset for this order (e.g., Corporate Gifting, Influencer Seeding). The send preset controls settings like order generation, notification behavior, and payment collection. See [Send Presets](https://docs.sendtomany.com/settings/shopify-bulk-order-generation-settings/.md) for details. * **Assigned user:** Assign the Send to a specific team member if you want to track who's handling it. * **Title:** Give the Send a descriptive name (e.g., "Acme Corp Holiday Gifts 2026"). * **Notes:** Add any internal notes for your team. These are visible only in the admin, not to the customer. All changes on step 1 **save automatically** as you make them. You don't need to click a save button. If the customer uploaded an address file, it imports here. Review the column mapping and confirm it. If you have a saved [Import Format](https://docs.sendtomany.com/upload/saved-import-formats/.md) that matches the file's headers, the mapping applies automatically. ## Steps 2–4: Products, Validation, and Shipping[​](#steps-24-products-validation-and-shipping "Direct link to Steps 2–4: Products, Validation, and Shipping") From here, the workflow is the same as any other Send: 1. **Products (Step 2):** Match or assign products to recipients. If the customer mentioned specific products in their inquiry, use that context to guide your selections. See [Creating a Corporate Gifting Order](https://docs.sendtomany.com/tutorials/multi-recipient-orders/upload-corporate-gifting-order/.md) for the detailed step-by-step. 2. **Validate addresses (Step 3):** Send To Many validates every recipient address. Review any flagged addresses and accept suggestions or edit manually. 3. **Shipping and review (Step 4):** Select shipping rates for recipients, review calculated totals per recipient including tax and shipping, and confirm everything looks right. ## Step 5: Generate Invoice and Collect Payment[​](#step-5-generate-invoice-and-collect-payment "Direct link to Step 5: Generate Invoice and Collect Payment") Once everything is verified, click **Generate Invoice**. Send To Many creates an aggregate draft order in Shopify that serves as the customer's invoice. You can send the invoice directly from the Shopify draft order page for the customer to review, approve, and submit payment. Auto-generate orders on payment If your send preset is configured to auto-generate orders on payment, recipient orders are created automatically as soon as the invoice is marked paid. If auto-generation is turned off, you'll receive a notification that the Send has been paid and needs orders generated. You can then review and generate manually when ready. See [Send Presets](https://docs.sendtomany.com/settings/shopify-bulk-order-generation-settings/.md) for details on configuring this option. ## The Complete Flow[​](#the-complete-flow "Direct link to The Complete Flow") Here's the full sequence from submission to fulfillment: 1. **Customer submits inquiry** on your storefront. 2. **Your team is notified** via email. 3. **Open the inquiry** in the Manage Sends page. Customer and files are already set up. 4. **Configure the Send:** Choose send preset, assign to a team member, add a title and notes. 5. **Import recipients:** The customer's address file (if uploaded) is already queued. Confirm the column mapping. 6. **Select products, validate addresses, choose shipping:** Walk through steps 2–4 as you would for any Send. 7. **Generate invoice:** Create the aggregate draft order and send it to the customer. 8. **Customer pays:** Payment is collected through Shopify's draft order invoice flow. 9. **Orders generate:** Recipient orders are created (automatically or manually, depending on your send preset settings). 10. **Fulfill orders:** Ship products to recipients through your normal fulfillment workflow. ## Next Steps[​](#next-steps "Direct link to Next Steps") * [How the Inquiry Form Works](https://docs.sendtomany.com/inquiry-form/how-corporate-gifting-inquiry-form-works/.md): Overview of the inquiry form feature. * [Configuring the Inquiry Form](https://docs.sendtomany.com/inquiry-form/configure-corporate-gifting-form/.md): Adjust form fields, templates, and notifications. * [Creating a Corporate Gifting Order](https://docs.sendtomany.com/tutorials/multi-recipient-orders/upload-corporate-gifting-order/.md): Detailed walkthrough of the Send workflow (steps 2–5). * [Saved Import Formats](https://docs.sendtomany.com/upload/saved-import-formats/.md): How column mappings work with inquiry file uploads. --- # How to Upload a Corporate Gifting Order into Shopify Ops guide to uploading a corporate gifting order: prep your spreadsheet, validate addresses, calculate shipping and tax, invoice, and create Shopify orders. This tutorial is written for ops teams handling corporate gifting orders day-to-day. It covers the full process from receiving a client's recipient list to having orders ready for fulfillment in Shopify, with practical guidance on spreadsheet preparation, common issues, and what to expect at each step. ## Before You Start[​](#before-you-start "Direct link to Before You Start") You'll need: * A recipient spreadsheet from your client (CSV, Excel, or Google Sheets URL) * The client set up as a Shopify customer (or you can create them during the Send) * Your Corporate Gifting send preset configured. If you haven't set one up yet, see [Send Presets and Generation Settings](https://docs.sendtomany.com/settings/shopify-bulk-order-generation-settings/.md) ## Step 1: Prepare the Spreadsheet[​](#step-1-prepare-the-spreadsheet "Direct link to Step 1: Prepare the Spreadsheet") Send To Many is flexible about spreadsheet format. In most cases, your client's file will work without changes. The system auto-detects common column headers like "Name," "Address," "City," "State," and "Zip." **Minimum required columns:** First name, last name, address line 1, city, state/province, ZIP/postal code, and country (if shipping internationally). **Optional columns that save time:** * **Product columns:** SKU, product name, or variant name. Include these if different recipients get different products. * **Gift message:** A column with personalized messages for each recipient. * **Company name:** Appears on shipping labels when included. * **Phone number:** Required by some carriers for delivery. * **Quantity:** If different recipients get different quantities of the same product. Format ZIP codes as text in Excel Excel coerces ZIP codes into numbers, stripping leading zeros (e.g., "01234" becomes "1234"). Format your ZIP column as Text before saving. Google Sheets handles this correctly by default. For detailed formatting guidance, see [Formatting Your Upload File](https://docs.sendtomany.com/upload/bulk-order-spreadsheet-format/.md). ## Step 2: Create the Send and Upload[​](#step-2-create-the-send-and-upload "Direct link to Step 2: Create the Send and Upload") 1. Open Send To Many and click **Create Send**. 2. Enter a **Send name** that your team can identify later (e.g., "Acme Corp Holiday 2026" or the client's PO number). 3. Select the **billing customer** from the dropdown. This is the gifter company paying for the order. If they're not in Shopify yet, you can create them here. 4. Select **Corporate Gifting** as the send preset. 5. Optionally assign a **store rep** so your team knows who's handling this Send. 6. Click **Upload File** and select the spreadsheet. 7. Review the **column mapping**. Send To Many auto-detects headers when possible. Check that each column is mapped to the correct field, adjust any that look wrong, and click **Continue**. Save your column mapping If your client sends files with the same column headers each time, the mapping is saved automatically as an Import Format. Future uploads with matching headers will map without manual review. ## Step 3: Match Products[​](#step-3-match-products "Direct link to Step 3: Match Products") **If your spreadsheet included product columns (SKU or product name):** Send To Many matches each entry to your Shopify catalog. Review the matches. If there are multiple potential matches or variants, you'll see a short list to choose from. Click any unmatched product to search your catalog and assign it manually. **If your spreadsheet didn't include products:** Select a product to send to all recipients. Everyone in this Send receives the same item. If different recipients should get different products, add a product column to the file. You can also update any individual recipient's products later, on the review and finalize steps, if something needs to change. Once all products are matched, click **Continue**. ## Step 4: Validate Addresses[​](#step-4-validate-addresses "Direct link to Step 4: Validate Addresses") Send To Many validates every address using multiple data sources with good international coverage. This step runs automatically. * **Valid addresses** (green): No action needed. * **Addresses needing review** (yellow): Missing apartment number, unclear street, or other issues where we have a suggested correction. Review and accept or edit. * **Invalid addresses** (red): Click **Try Autocomplete** to search for a valid match, or **Exclude** the recipient if no valid address exists. For addresses we're confident about, we apply corrections automatically. For anything uncertain, we flag it for your review rather than guessing. Once all addresses are resolved, click **Continue**. ## Step 5: Apply Shipping Rates[​](#step-5-apply-shipping-rates "Direct link to Step 5: Apply Shipping Rates") Shipping rates are calculated for each recipient individually based on their destination address, the products in their order, and your Shopify shipping configuration. You can apply rates in batches (e.g., select "USPS Priority Mail" for all eligible recipients at once) or adjust them individually. Custom rates can also be applied to specific orders, or bulk applied to any selection of recipients at once. Calculated vs. free shipping Corporate Gifting sends use calculated shipping by default. If your client has negotiated a flat rate or free shipping, you can set this in your send preset settings or override it per-Send. See [Send Presets and Generation Settings](https://docs.sendtomany.com/settings/shopify-bulk-order-generation-settings/.md). Once all recipients have a shipping rate, click **Continue**. ## Step 6: Review and Generate the Invoice[​](#step-6-review-and-generate-the-invoice "Direct link to Step 6: Review and Generate the Invoice") The finalize screen shows the full Send summary: * Total recipients * Aggregate product subtotal, shipping, and tax across all orders * Line-item breakdown This is also where late changes happen. Forgot a recipient? Click **Add recipient** to add them with address autocomplete, product selection, and a shipping rate. Need to adjust one recipient's products? Edit them directly on the recipients table. And if the client has a negotiated discount, click **Add discount** on the aggregate order to apply a discount code or a custom discount before sending the invoice. Totals recalculate with each change. ![Send To Many aggregate order payment summary with the Add discount option before generating a corporate gifting invoice](/assets/images/forgiving-upload-workflow-3-7423b3ba5650aa1dde446ad04cde911e.png) Before generating, check your **shipping notification settings**. The default (suppressed) is usually correct for corporate gifting. Recipients won't receive Shopify order confirmation or shipping emails. If the gifter wants recipients to receive tracking notifications, change this setting before generating. Click **Generate Invoice**. Send To Many creates an aggregate draft order in Shopify. This is the invoice you'll send to the client. ## Step 7: Send the Invoice and Collect Payment[​](#step-7-send-the-invoice-and-collect-payment "Direct link to Step 7: Send the Invoice and Collect Payment") Navigate to the aggregate draft order in Shopify admin. From there you can: * **Send the invoice email** to the billing customer for them to review and pay through Shopify checkout. * **Mark as paid** if the client paid via wire, check, or another method outside Shopify. * **Charge a vaulted B2B card** if the client has a saved payment method on their company location. See [Shopify B2B Setup](https://docs.sendtomany.com/tutorials/order-management/set-up-shopify-b2b/.md) for details. Downloading a cost breakdown for the client Before or after generating the invoice, you can download the full recipient list as a CSV from the Send summary. This spreadsheet includes each recipient's address, products, shipping cost, and tax. Share it alongside the invoice for clients who want a detailed breakdown. ## Step 8: Orders Generate After Payment[​](#step-8-orders-generate-after-payment "Direct link to Step 8: Orders Generate After Payment") Once payment is received: 1. The aggregate draft order becomes a finalized Shopify order, tagged "Send to Many aggregate." 2. If auto-generation is enabled in your send preset, individual recipient orders generate automatically. If auto-generation is off, you'll receive an email notification and can generate orders manually from the Send summary. 3. Recipient orders flow into your fulfillment pipeline. Print labels, route to your 3PL, or fulfill however you normally process Shopify orders. Monitor fulfillment progress from the Send summary page. If any orders fail to generate, they'll appear in a Failed section with error details. You can retry failed orders individually or in bulk. ## Next Steps[​](#next-steps "Direct link to Next Steps") * [What happens after order generation](https://docs.sendtomany.com/orders/shopify-bulk-order-tracking-and-fulfillment/.md): Order lifecycle, tracking, and failed order handling * [Managing aggregate orders](https://docs.sendtomany.com/orders/shopify-aggregate-gifter-order-management/.md): How to handle the parent order in Shopify reports and fulfillment * [Cancelling and refunding orders](https://docs.sendtomany.com/tutorials/order-management/cancel-and-refund-orders/.md): Two-step process for refunds across recipient and aggregate orders * [Formatting your upload file](https://docs.sendtomany.com/upload/bulk-order-spreadsheet-format/.md): Detailed column requirements and spreadsheet best practices --- # Creating a Corporate Gifting Order Step-by-step guide to creating a corporate gifting Send — from spreadsheet upload to invoice and payment collection. Corporate Gifting Sends let you collect payment from your customer (the gifter company) before generating recipient orders. Use this workflow when a client is sending gifts to their own customers, employees, or partners, and you need to invoice them first. This guide walks you through the complete process: uploading the recipient file, selecting products, validating addresses, calculating shipping, generating an aggregate invoice, and collecting payment before orders are created. [Creating a corporate gifting order in Send To Many](https://www.youtube.com/embed/ue3EBUez7h4) ## Before You Start[​](#before-you-start "Direct link to Before You Start") Prepare a spreadsheet with recipient details. See [Formatting Your Upload File](https://docs.sendtomany.com/upload/bulk-order-spreadsheet-format/.md) for column requirements and best practices. ## Step 1: Details & Upload[​](#step-1-details--upload "Direct link to Step 1: Details & Upload") 1. From the Sends dashboard, click **Create Send**. 2. Enter a **Send name** (e.g., "Q1 Client Appreciation"). 3. Select the **billing customer** (your customer) from the dropdown. If they're not listed as a customer in your store, you can add them here. If the customer already has other open or draft Sends, we'll display a link so you can check for duplicates. 4. Select **Corporate Gifting** as the send preset. If your preset has **Use recipient as customer** enabled, each recipient order will be created under the recipient's own Shopify customer record instead of the gifter's. See [Send Presets and Generation Settings](https://docs.sendtomany.com/settings/shopify-bulk-order-generation-settings/.md) for details. 5. Optionally, assign a **store rep** to the Send. This lets your team track who's responsible for each Send from the dashboard. 6. Click **Upload File** and select your spreadsheet (CSV, Excel, or Google Sheets URL). 7. Confirm the column mapping. Send To Many auto-detects headers when possible. Review the preview and adjust any incorrect mappings, then click **Continue**. ## Step 2: Review Products[​](#step-2-review-products "Direct link to Step 2: Review Products") If your file included product columns (SKU or a product or variant name): * We attempt to match each entry to your catalog. * Review matches. If we find multiple matches or variants, we'll give you the short list to choose from. Click any unmatched product to search your catalog and assign manually. * Need a one-off that isn't in your catalog? On any product card, open the menu and choose **Use custom product** to add it as a custom item. We fill in the name and quantity from your file, and you can edit the details before saving. See [product columns and custom products](https://docs.sendtomany.com/upload/bulk-order-spreadsheet-format/.md#product-columns) for details. If your file didn't include products: * Select a **product to send to all recipients**. Everyone in this Send receives the same product. * If different recipients should get different products, add a product column to your file. You can also update individual recipients' products later on the review and finalize steps. Once all products are matched, click **Continue**. ## Step 3: Validate Addresses[​](#step-3-validate-addresses "Direct link to Step 3: Validate Addresses") Send To Many validates every address using multiple data sources with good international coverage. For addresses where we find a high-confidence correction, we apply the fix automatically. For addresses that need attention, we flag them for your review with suggested changes. * **Valid addresses** are marked green. No action needed. * **Addresses needing review** show yellow warnings (e.g., missing apartment number, unclear street). Review the suggestion and accept or edit. * **Invalid addresses** are marked red. Click the **Try Autocomplete** button to edit the address and search for a valid match by typing in the Address 1 field. Or you can **Exclude** the recipient if no valid address is available. Address validation runs automatically. Once all addresses are resolved, click **Continue**. ## Step 4: Apply Shipping Rates[​](#step-4-apply-shipping-rates "Direct link to Step 4: Apply Shipping Rates") Shipping rates are calculated for each recipient based on: * Each recipient's address * Specific products for each order, including your package weight and dimensions settings * Carrier rates based on your shipping settings in Shopify Beyond built-in shipping You're not limited to Shopify's default carrier rates. Send To Many also supports third-party shipping and delivery apps like [Zapiet](https://docs.sendtomany.com/integrations/shopify-zapiet-store-pickup-local-delivery/.md) or [Bird](https://docs.sendtomany.com/integrations/shopify-bird-store-pickup-local-delivery/.md) for store pickup and local delivery, and you can connect your own shipping provider through our [Custom Shipping Dates and Rates API](https://docs.sendtomany.com/integrations/shopify-custom-shipping-dates-rates-api/.md). See [Send Presets and Generation Settings](https://docs.sendtomany.com/settings/shopify-bulk-order-generation-settings/.md) for shipping configuration options. You can apply shipping rates in batches or adjust them individually for each recipient. You can also apply custom rates to individual orders as needed. Once all recipients have a shipping rate, click **Continue**. ## Step 5: Finalize & Generate Invoice[​](#step-5-finalize--generate-invoice "Direct link to Step 5: Finalize & Generate Invoice") Review the Send summary: * Number of recipients * Aggregate line items and total aggregate cost * Tax details from across all orders and totals * Aggregate shipping total Before generating, review your **shipping notification settings**. By default, Send To Many suppresses all Shopify order and shipping confirmation emails — this prevents hundreds of automated emails from going out to recipients. You can change this behavior per Send to notify recipients directly, notify the gifter, or keep notifications suppressed. See [Shipping Notifications](https://docs.sendtomany.com/checkout/shopify-multi-recipient-order-notifications/.md) for full details on how notification settings work and how to configure them for each Send preset. Once you've reviewed everything, click **Generate Invoice**. We create an aggregate invoice as a Shopify draft order. You can send the invoice to the billing customer from the draft order page for them to review, approve, and submit payment. Auto-generate orders on payment What happens after the invoice is paid depends on your send preset settings. If your Corporate Gifting send preset is configured to auto-generate orders on payment, recipient orders are created automatically as soon as the invoice is marked paid. If auto-generation is turned off, you'll receive a notification that the Send has been paid and needs orders generated — you can then review and generate manually when ready. See [Send Presets & Settings](https://docs.sendtomany.com/settings/shopify-bulk-order-generation-settings/.md) for details on configuring the auto-generate option. To view payment status and generated orders, go to the Send detail page. Orders also appear in your Shopify Orders page. ## What Happens After Payment[​](#what-happens-after-payment "Direct link to What Happens After Payment") Once the gifter pays the invoice, several things happen in sequence. If any recipient orders fail to generate during this process, you'll receive a notification with details about which orders had issues — you can retry failed orders individually or in bulk from the Send summary page. **An aggregate (gifter) order is created.** The draft order becomes a completed order that captures the full revenue for the Send. This "parent" order uses custom line items (not your catalog products) to avoid double-counting inventory. It's tagged "Send to Many aggregate" and marked as "Does not require shipping." Because this order lives alongside your regular Shopify orders, you may want to exclude it from fulfillment workflows and adjust how it appears in your reports. See [Managing Aggregate Orders](https://docs.sendtomany.com/orders/shopify-aggregate-gifter-order-management/.md) for details on handling parent orders — including how to exclude them from fulfillment, filter them from revenue reports, and mark them as fulfilled. **The gifter receives an order confirmation.** Shopify sends the standard order confirmation email for the aggregate order. This confirms payment but does not include individual recipient tracking links. The gifter can view all their recipient orders and delivery statuses through their [customer account page](https://docs.sendtomany.com/customer-accounts/shopify-customer-send-history-page/.md) — our customer account extensions display Send history and order details in a clean, organized view. You can also download a CSV with all tracking IDs and delivery statuses from the Send summary page in the app. **Recipient orders are generated** for each line in the spreadsheet. This will happen automatically if you have that preference set in your send preset. Otherwise, you'll receive an email notification that the order has been paid and you can "Process all orders" from the Send summary page. Each recipient gets their own Shopify order with their shipping address and products. **Fulfillments** will process according to your Shopify fulfillment settings and workflows. Print labels, route to your 3PL, or fulfill however you normally process orders. **Recipients may receive tracking notifications** depending on your notification settings. If you've left notifications suppressed (the default), recipients won't receive any emails. If you've enabled recipient notifications, they'll get shipping confirmations with tracking links as orders are fulfilled. From this point, the Send is live. Monitor order status and shipping progress from the Send summary page or in the Shopify Orders dashboard. ## Next Steps[​](#next-steps "Direct link to Next Steps") * [What happens after you generate bulk orders](https://docs.sendtomany.com/orders/shopify-bulk-order-tracking-and-fulfillment/.md) — order lifecycle, tracking, and failed order handling * [Managing aggregate (parent) orders in Shopify](https://docs.sendtomany.com/orders/shopify-aggregate-gifter-order-management/.md) — fulfillment exclusion, reporting, and marking parent orders fulfilled * [Bulk order invoicing and payment collection](https://docs.sendtomany.com/invoicing/shopify-corporate-gifting-invoice-payment/.md) — payment methods, B2B billing, and invoice customization * [Cancelling and refunding bulk recipient orders](https://docs.sendtomany.com/tutorials/order-management/cancel-and-refund-orders/.md) — how to handle refunds for individual recipient orders --- # How to Send Product Samples to Influencers on Shopify Ship product samples to influencers in bulk from Shopify: upload a recipient list, suppress notifications, apply free shipping, and generate orders at once. Influencer Seeding Sends let you mail product samples to your list of influencers, franchisees, partners, etc. Upload your address spreadsheet, verify products and addresses, select a shipping method (or free shipping if you don't need a shipping rate) and generate your orders. You'll have a single place in Shopify to keep track of all your marketing sends and save tons of time manually managing these bulk orders. This guide walks you through uploading your influencer list and generating orders. Unlike Corporate Gifting Sends (which require invoicing and payment before orders are created), Influencer Seeding orders can be generated whenever the Send is ready. [Creating an influencer mailing in Send To Many](https://www.youtube.com/embed/BZJzEDAKAr0) Looking for the invoicing workflow? If you need to collect payment before generating orders, see [Creating a Corporate Gifting Order](https://docs.sendtomany.com/tutorials/multi-recipient-orders/upload-corporate-gifting-order/.md) instead. ## Before You Start[​](#before-you-start "Direct link to Before You Start") Prepare a spreadsheet with influencer contact details. See [Formatting Your Upload File](https://docs.sendtomany.com/upload/bulk-order-spreadsheet-format/.md) for column requirements and best practices. ## Step 1: Details & Upload[​](#step-1-details--upload "Direct link to Step 1: Details & Upload") 1. From the Sends dashboard, click **Create Send**. 2. Enter a **Send name** (e.g., "Q1 Influencer Samples"). 3. You'll need to specify a **billing customer** for the send. You can make this yourself or another internal account sponsoring the mailing. If they're not listed as a customer in your store, you can add them here. If the customer already has other open or draft Sends, we'll display a link so you can check for duplicates. 4. Select **Influencer Seeding** as the send preset. 5. Optionally, assign a **store rep** to the Send. This lets your team track who's responsible for each Send from the dashboard. 6. Click **Upload File** and select your spreadsheet (CSV, Excel, or Google Sheets URL). 7. Confirm the column mapping. Send To Many auto-detects headers when possible. Review the preview and adjust any incorrect mappings, then click **Continue**. ## Step 2: Review Products[​](#step-2-review-products "Direct link to Step 2: Review Products") If your file included product columns (SKU or a product or variant name): * We match each entry to your catalog. * Review matches. If we find multiple matches or variants, we'll give you the short list to choose from. Click any unmatched product to search your catalog and assign manually. * **Customization per influencer:** If different influencers should receive different products, adjust the product assignment for each row. If your file didn't include products: * Select a **product to send to all influencers**. Everyone receives the same sample. * To send different products, add a product column to your file. You can also update individual influencers' products later on the review and finalize steps. Once all products are matched, click **Continue**. ## Step 3: Validate Addresses[​](#step-3-validate-addresses "Direct link to Step 3: Validate Addresses") Send To Many validates every address using multiple data sources with good international coverage. For addresses where we find a high-confidence correction, we apply the fix automatically. For addresses that need attention, we flag them for your review with suggested changes. * **Valid addresses** are marked green. No action needed. * **Addresses needing review** show yellow warnings (e.g., missing suite number, unclear format). Review the suggestion and accept or edit. * **Invalid addresses** are marked red. Click the **Try Autocomplete** button to edit the address and search for a valid match by typing in the Address 1 field. Or you can **Exclude** the influencer if no valid address is available. Address validation runs automatically. Once all addresses are resolved, click **Continue**. ## Step 4: Review Shipping (Free)[​](#step-4-review-shipping-free "Direct link to Step 4: Review Shipping (Free)") The Influencer Seeding preset applies free shipping to all recipients by default, so this step will be skipped, with a shipping cost of $0 applied to each order. Need calculated or custom shipping? While Influencer Seeding defaults to free shipping, you can change this in your send preset settings. See [Send Presets and Generation Settings](https://docs.sendtomany.com/settings/shopify-bulk-order-generation-settings/.md) for details. ## Step 5: Finalize & Generate Orders[​](#step-5-finalize--generate-orders "Direct link to Step 5: Finalize & Generate Orders") Review the Send summary: * Number of influencers * Total product cost (no shipping charge) * Product breakdown Before processing orders, review your **shipping notification settings**. By default, Influencer Seeding suppresses all Shopify order and shipping confirmation emails — influencers won't receive any automated messages from Shopify. If you want influencers to receive tracking information, you can override this per Send. See [Shipping Notifications](https://docs.sendtomany.com/checkout/shopify-multi-recipient-order-notifications/.md) for details on notification options. Click **Process all orders**. Orders generate immediately — no payment step, no approval needed. ## What Happens After You Finalize[​](#what-happens-after-you-finalize "Direct link to What Happens After You Finalize") Once you finalize the Send, orders are created right away: **Recipient orders generate** for each influencer in your spreadsheet. Each order contains their shipping address and products, tagged and configured according to your Influencer Seeding send preset settings. **Shipments are created** according to your fulfillment settings and workflows — print labels, route to your 3PL, or fulfill however you normally process orders. **Influencers receive no notifications** by default. If you've changed the notification settings to send to recipients, they'll receive shipping confirmations with tracking links as orders are fulfilled. See [Shipping Notifications](https://docs.sendtomany.com/checkout/shopify-multi-recipient-order-notifications/.md) for how to configure this. **You can monitor progress** from the Send summary page, which shows fulfillment status, tracking numbers, and delivery statuses for each order. You can also download a CSV export with all tracking IDs and delivery statuses. If any orders fail to generate, you'll see them in the Send summary with error details. You can retry failed orders individually or in bulk. ## Influencer Seeding Defaults[​](#influencer-seeding-defaults "Direct link to Influencer Seeding Defaults") When you choose Influencer Seeding, these settings are applied automatically: * **Shipping cost:** $0 (free to all recipients) * **Recipient notifications:** Suppressed (influencers do not receive order confirmation or tracking emails) * **Inventory:** Orders draw from your inventory * **Order cost:** $0 (from the recipient's perspective) You can customize any of these defaults in your [Send Presets & Settings](https://docs.sendtomany.com/settings/shopify-bulk-order-generation-settings/.md), or override them on a per-Send basis. ## Next Steps[​](#next-steps "Direct link to Next Steps") * [What happens after you generate bulk orders](https://docs.sendtomany.com/orders/shopify-bulk-order-tracking-and-fulfillment/.md) — order lifecycle, tracking, and failed order handling * [Shipping notification settings for bulk orders](https://docs.sendtomany.com/checkout/shopify-multi-recipient-order-notifications/.md) — control who receives order and shipping emails * [Send preset and order generation settings](https://docs.sendtomany.com/settings/shopify-bulk-order-generation-settings/.md) — customize Influencer Seeding defaults or create your own send preset * [Send Presets and Generation Settings](https://docs.sendtomany.com/settings/shopify-bulk-order-generation-settings/.md) — configure shipping, revenue handling, and other order generation settings --- # How to Cancel & Refund Bulk Orders on Shopify Cancel individual recipient orders and process refunds across both recipient and aggregate orders. Step-by-step process to keep your accounting balanced. Sometimes you need to cancel recipient orders from a Send. Because revenue lives on the aggregate order and fulfillment lives on the recipient orders, cancellation is a two-step process. [How to cancel and refund Send To Many orders](https://www.loom.com/embed/05e7a04c5ff74314923fc9b95c248111) ## Two-Step Process[​](#two-step-process "Direct link to Two-Step Process") **Step 1: Cancel the recipient order in Shopify** 1. Go to your Shopify admin and find the recipient order (use the Send summary page **View in Shopify** button to filter to just your Send's orders) 2. Click to open the order 3. Click **Cancel order** 4. Choose refund options for products, shipping, and tax 5. Confirm the cancellation **Step 2: Refund from the aggregate order** 1. Return to Shopify admin and find the aggregate order (the gifter order for that Send) 2. Open the aggregate order 3. Go to the refunds section 4. Create a custom-amount refund matching what you refunded on the recipient order 5. Confirm the refund Keep both orders in sync Always refund both the recipient order (fulfillment side) and the aggregate order (revenue side). If you only cancel one, your accounting will be out of balance. ## Partial Cancellations[​](#partial-cancellations "Direct link to Partial Cancellations") You can cancel some recipients while keeping others active. Repeat the two-step process for each recipient you're cancelling, then refund the total from the aggregate order. ## Why Two Steps[​](#why-two-steps "Direct link to Why Two Steps") Send To Many splits each Send into recipient orders (fulfillment and customer delivery) and an aggregate order (payment and revenue). To fully cancel a recipient and refund them: * The recipient order records cancellation of their shipment * The aggregate order refunds the corresponding revenue Both need to be addressed for the transaction to be complete. ## Next Steps[​](#next-steps "Direct link to Next Steps") * Cancel all orders and start over: [Deleting and Regenerating Orders](https://docs.sendtomany.com/tutorials/order-management/delete-and-regenerate-orders/.md) * Understand aggregate order mechanics: [Managing Aggregate Orders](https://docs.sendtomany.com/orders/shopify-aggregate-gifter-order-management/.md) --- # Delete & Regenerate Bulk Orders in Shopify Start over on a Send by deleting all orders and regenerating from scratch. Retry individual failed orders or rebuild the entire batch. If something went wrong (wrong products, address changes, Send preset change), you can delete all orders from a Send and regenerate them from scratch. This is cleaner than cancelling orders one by one. [How to delete and regenerate Send To Many orders](https://www.loom.com/embed/f1cdb452c0f54a61ae2b0ba1aca5c3a2) ## How to Delete and Regenerate[​](#how-to-delete-and-regenerate "Direct link to How to Delete and Regenerate") 1. Go to the **Send summary page** in Send To Many 2. Click **View in Shopify** to see all orders from that Send 3. Select all orders (both recipient and aggregate) 4. Use Shopify's **bulk actions** to cancel all orders 5. Return to the **Send summary** in Send To Many 6. Click **Regenerate** to create new orders Fresh orders will be generated from your current Send configuration with no remnants of the old orders. ## Avoiding Re-Invoicing[​](#avoiding-re-invoicing "Direct link to Avoiding Re-Invoicing") When you regenerate, use the **Prepaid Invoice** Send preset. This tells us payment was already collected (since you already invoiced them for the first attempt), so we won't create a new invoice during regeneration. ## When to Regenerate[​](#when-to-regenerate "Direct link to When to Regenerate") * Wrong products selected * Shipping addresses need correction * Send preset or packaging changed after initial generation * Customer requested changes before fulfillment began ## Next Steps[​](#next-steps "Direct link to Next Steps") * Cancel individual orders instead: [Cancelling and Refunding Orders](https://docs.sendtomany.com/tutorials/order-management/cancel-and-refund-orders/.md) Use Prepaid Invoice for regeneration When regenerating orders for a customer who was already invoiced, select Prepaid Invoice as your Send preset. This prevents duplicate invoicing. --- # Shopify B2B Setup and Configuration Step-by-step guide to setting up Shopify B2B for corporate gifting, including vaulted payment methods, catalog pricing, payment terms, and order permissions. This guide walks through every step of setting up Shopify's B2B features to work with Send To Many for corporate gifting. It covers associating B2B customers with Sends, configuring vaulted payment methods, catalog pricing, payment terms, deposits, and the permissions required to charge vaulted cards on aggregate invoices. info Shopify B2B is now available on all Shopify plans. Previously, B2B features required Shopify Plus. ## 1. Associating a B2B Customer with a Send[​](#1-associating-a-b2b-customer-with-a-send "Direct link to 1. Associating a B2B Customer with a Send") When creating a Send in Send To Many, select a customer that already has a company and location associated in Shopify. If the B2B customer is not yet set up: 1. Go to **Shopify Admin** > **Customers** > **Companies**. 2. Create the company. 3. Add at least one location. 4. Assign the customer contact to that location. To create a B2B Send, the customer must be associated with a company location. ![Send To Many step 1 showing B2B customer with company association](/assets/images/b2b-send-with-company-6d443585877f3a5aec5aa176b0d4fdbe.png) ## 2. Confirming the Selected Company Location[​](#2-confirming-the-selected-company-location "Direct link to 2. Confirming the Selected Company Location") Once a B2B customer is selected, you will see the company name, location, and billing address tied to that location. All of the following are tied to the **location**, not just the company: * Payment terms * Catalog pricing * Vaulted payment methods * Checkout behavior ![Send To Many step 1 for a B2B send showing company location details](/assets/images/b2b-send-step-1-e50023549aaa15a9f54025630aa061be.png) ## 3. B2B Catalog Pricing Applies Automatically[​](#3-b2b-catalog-pricing-applies-automatically "Direct link to 3. B2B Catalog Pricing Applies Automatically") Send To Many respects Shopify B2B pricing. Catalog pricing assigned to the company location and any price adjustments defined in B2B are applied automatically when the draft order is generated. ![Send To Many step 2 showing catalog pricing applied to products](/assets/images/b2b-send-catalog-pricing-1e615f7bdbd85e62092ef6611da6e2e0.png) ## 4. Draft Orders with Payment Terms and Deposits[​](#4-draft-orders-with-payment-terms-and-deposits "Direct link to 4. Draft Orders with Payment Terms and Deposits") When Send To Many generates the aggregate draft order for the Send, it is automatically associated with the customer's company location. Any catalog discounts are applied. If you select "Payment due later", default terms are applied. From the draft order, you can: * Add or change payment terms (for example, Net 15 or Net 30). * Add or change a deposit requirement (for example, 25%), unless a deposit is already required for the location. * Shopify calculates the total due today and the remaining balance due later. ![Shopify B2B draft order showing payment terms with deposit option for a Send To Many corporate gifting order](/assets/images/b2b-draft-order-add-deposit-5099aadb114c891e078afb7eee033b37.png) ## 5. Reserving Inventory Before Sending an Invoice[​](#5-reserving-inventory-before-sending-an-invoice "Direct link to 5. Reserving Inventory Before Sending an Invoice") Before sending an aggregate draft invoice, you can reserve inventory and hold items until a specific date and time. This is helpful when you are awaiting deposit payment, working through internal approvals, or protecting limited inventory. ## 6. Charging a Vaulted Card or Sending an Invoice[​](#6-charging-a-vaulted-card-or-sending-an-invoice "Direct link to 6. Charging a Vaulted Card or Sending an Invoice") If the company location has a saved payment method and the admin has proper permissions, you can charge the vaulted card directly from the draft order. Alternatively, you can send an invoice email from the draft order page and let the customer pay through checkout. ![Shopify B2B draft order showing vaulted card and deposit options for a Send To Many corporate gifting invoice](/assets/images/b2b-draft-order-deposit-vaulted-card-2c8e0380609279f1a44d2b2075a82afb.png) ## 7. B2B Checkout with Vaulted Cards[​](#7-b2b-checkout-with-vaulted-cards "Direct link to 7. B2B Checkout with Vaulted Cards") Whether the customer receives an invoice email or places an order directly from the storefront while logged into their B2B account, vaulted cards are available at checkout. At checkout: * Payment terms are shown. * Deposit requirements are displayed. * Previously saved cards tied to the location are available. * The call-to-action reads "Confirm order" instead of "Pay now". ![Shopify B2B checkout showing vaulted card payment options with deposit and terms for corporate gifting](/assets/images/b2b-vaulted-cards-deposit-terms-45514c55017d3fd771f821ea1cff32d0.png) ## 8. Saving a Card During Checkout[​](#8-saving-a-card-during-checkout "Direct link to 8. Saving a Card During Checkout") If the customer does not already have a saved payment method associated with their location, they can add one during checkout. The card is vaulted and becomes available for future transactions. Other authorized contacts at the same location can use it as well. ## 9. Adding a Payment Method from the B2B Account[​](#9-adding-a-payment-method-from-the-b2b-account "Direct link to 9. Adding a Payment Method from the B2B Account") A customer assigned as a location manager can also add a payment method by logging into their account on your store and navigating to their profile and location details. Inside the B2B account, the customer can see their company and location, view saved payment methods and add new ones, review payment terms, and check staff permissions. All vaulted payment methods are tied to the **location**, not the individual user. ![Shopify B2B account page showing company location details and saved payment method for corporate gifting](/assets/images/b2b-account-page-location-details-2288643bbd9640b6cdfa4592fa897bd1.png) *** ## Setting Up B2B in Shopify for Vaulted Card Payments[​](#setting-up-b2b-in-shopify-for-vaulted-card-payments "Direct link to Setting Up B2B in Shopify for Vaulted Card Payments") For all of this to work properly, you need to confirm several settings in Shopify. For additional details, see Shopify's documentation on [vaulted payment methods](https://help.shopify.com/en/manual/b2b/checkout-and-orders/vaulted-cards#send-a-request-for-a-b2b-customer-to-update-vaulted-card-information) and [getting started with B2B](https://help.shopify.com/en/manual/b2b/getting-started). ### Confirm Company-Level Setup[​](#confirm-company-level-setup "Direct link to Confirm Company-Level Setup") In Shopify Admin, go to **Customers** > **Companies** and select the company. Confirm that the company is approved, at least one location exists, payment terms are defined (for example, Net 15), catalogs are assigned, and customers are associated with the company. Payment terms and payment methods are applied at the location level. ### Confirm the Location Has a Saved Payment Method[​](#confirm-the-location-has-a-saved-payment-method "Direct link to Confirm the Location Has a Saved Payment Method") Click into the location (for example, "HQ"). Verify that payment methods show at least one saved method, billing details are correct, and payment terms are set. If no payment method is saved, the customer must save one at checkout or add one from their B2B account page. ![Shopify admin B2B company location showing saved vaulted payment method for Send To Many orders](/assets/images/b2b-location-payment-method-906e031cda746832605f566a4014e4f7.png) ### Enable Admin Permission to Charge Vaulted Cards[​](#enable-admin-permission-to-charge-vaulted-cards "Direct link to Enable Admin Permission to Charge Vaulted Cards") Even if a payment method exists, admins cannot charge it unless the permission is enabled. In Shopify Admin, go to **Settings** > **Users and permissions** and select the user. Under Draft Orders permissions, enable **Charge vaulted payment method**. This permission is disabled by default. Without it, you can see saved cards but cannot charge them on draft orders. With it enabled, you can collect deposits, charge balances later, and apply payment directly to aggregate invoices. ![Shopify admin B2B settings showing the charge vaulted payment method permission for Send To Many](/assets/images/b2b-charge-vaulted-card-setting-5bf1576131cf7df8821c835d5ca49a29.png) ### Confirm Customer Location Permissions[​](#confirm-customer-location-permissions "Direct link to Confirm Customer Location Permissions") Vaulted cards are available to contacts assigned to the location. On the location page, confirm the customer contact is assigned with the appropriate role. **Location Admin** contacts can manage payment methods, update addresses, manage users, and place B2B orders. **Ordering Only** contacts can place B2B orders and use any vaulted payment method tied to the location, but cannot manage company settings. Any contact assigned to the location can use the saved payment methods at checkout. ![Shopify admin B2B location user management for controlling access to Send To Many corporate gifting orders](/assets/images/b2b-location-add-users-f7c14e95a0024239e6db2cdb242dfc58.png) *** ## B2B Invoices, Vaulted Cards, and Send To Many[​](#b2b-invoices-vaulted-cards-and-send-to-many "Direct link to B2B Invoices, Vaulted Cards, and Send To Many") For Send To Many aggregate draft invoices, the workflow is: 1. A Send is associated with a company location. 2. Shopify generates a draft order under that location. 3. Payment terms and deposit rules apply. 4. If a vaulted card exists, the admin can charge it (with permission enabled) or the customer can use it at checkout. 5. Charges are processed via Shopify Payments under the company location. ## Vaulted Card Requirements Checklist[​](#vaulted-card-requirements-checklist "Direct link to Vaulted Card Requirements Checklist") Before charging a B2B draft invoice, confirm all of the following: * Company exists in Shopify B2B. * Location exists under the company. * Customer is assigned to the location. * Payment terms are configured. * A payment method is saved at the location. * Admin has "Charge vaulted payment method" permission enabled. * Draft order is tied to the correct location. If all requirements are met, you can either charge the vaulted card directly to collect payment and complete the draft order, or send the invoice to the customer and allow them to use their vaulted payment method at checkout with or without additional payment terms. ![Shopify B2B invoice email showing deposit amount and due date for a Send To Many corporate gifting order](/assets/images/b2b-invoice-email-deposit-due-date-5d17f26b508b5f1ef9029dadf018c9f2.png) ## Related[​](#related "Direct link to Related") For invoicing and payment basics, see [Invoicing and Payment Collection](https://docs.sendtomany.com/invoicing/shopify-corporate-gifting-invoice-payment/.md). For an overview of B2B features, see [Using Shopify B2B for Corporate Gifting](https://docs.sendtomany.com/invoicing/shopify-plus-b2b-corporate-gifting/.md). For deposits and split payment approaches, see [Deposits and Split Payments](https://docs.sendtomany.com/invoicing/shopify-corporate-gifting-deposits-split-payments/.md). --- # Setting Up the Corporate Gifting Inquiry Form on Shopify Add a corporate gifting inquiry form to Shopify: configure fields, place it on a page, set notifications, test the flow, and add conditional logic and uploads. The inquiry form lets potential corporate gifting customers submit requests directly from your Shopify storefront. When a visitor fills out the form, Send To Many creates a Shopify customer record, notifies your team, and stages the inquiry as a Send ready for your sales team to pick up. This guide covers setup from start to finish: add the default form to a page, test it, then customize fields and notifications to match your workflow. ## Before You Start[​](#before-you-start "Direct link to Before You Start") You need Send To Many installed on your Shopify store. The inquiry form is available on all paid plans. ## Step 1: Add the Form to a Page[​](#step-1-add-the-form-to-a-page "Direct link to Step 1: Add the Form to a Page") The inquiry form ships ready to use. The default form includes contact fields (first name, last name, email, phone), company, date needed, a company logo upload, a questions box, and a recipient import file field backed by a default import format. You can get it live quickly and customize later. ### Create the page[​](#create-the-page "Direct link to Create the page") 1. In your Shopify admin, go to **Online Store → Pages**. 2. Click **Add page**. Give it a title like "Corporate Gifting," "Bulk Orders," or "Request a Quote." 3. Save the page. ### Add the form to the page template[​](#add-the-form-to-the-page-template "Direct link to Add the form to the page template") 1. Go to **Online Store → Themes → Customize**. 2. In the theme editor, use the page selector at the top to navigate to the page you just created. 3. Click **Add section** and search for **Send To Many** or **Inquiry Form**. 4. Select the inquiry form section. A live preview of your form fields appears on the page. 5. Drag the section to position it where you want. 6. Click **Save**. ![Send To Many inquiry form section added to a Shopify theme in the theme editor](/assets/images/adding-form-to-theme-b18bef45ec11b87758208b4091a1b644.png) The form inherits your theme's typography, colors, and spacing by default, so it fits naturally into your store's design without any additional styling. ### Add the page to your navigation[​](#add-the-page-to-your-navigation "Direct link to Add the page to your navigation") 1. In your Shopify admin, go to **Online Store → Navigation**. 2. Add your new page to your main menu, footer, or wherever customers should find it. ## Step 2: Set Up Notifications[​](#step-2-set-up-notifications "Direct link to Step 2: Set Up Notifications") Before testing, make sure your team will receive alerts when inquiries come in. 1. In Send To Many, go to the **Inquiry Form** settings page. 2. In the **Notifications** section, add the email addresses of team members who should be notified. 3. Click **+ Add** after each address. Everyone configured receives the notification email. Notification emails include the submitter's name, email, and company so your team can identify and prioritize inquiries quickly. ## Step 3: Test the Form[​](#step-3-test-the-form "Direct link to Step 3: Test the Form") 1. Visit the form page on your live storefront (or use your theme's preview URL). 2. Fill out every field and submit. 3. Confirm: * **Notification email arrives** to all configured recipients. * **Inquiry appears** in Send To Many's Manage Sends page. * **Customer was created** (or matched to an existing customer) in Shopify. Preview vs. live The theme editor shows a visual preview of the form, but submissions only work on the live store or the theme preview URL. Don't try to submit from the theme editor. ## Step 4: Customize Your Form Fields[​](#step-4-customize-your-form-fields "Direct link to Step 4: Customize Your Form Fields") Now that the form is live and working, customize the fields to match what you need from prospective customers. In Send To Many, go to the **Inquiry Form** settings page. ### Form title and description[​](#form-title-and-description "Direct link to Form title and description") Set a **Title** and **Description** that appear above your form on the storefront. The description supports basic rich text formatting. For example: "Request a Quote for Corporate Gifts" with a description like "Tell us about your gifting needs and we'll put together a custom proposal." ### Adding and configuring fields[​](#adding-and-configuring-fields "Direct link to Adding and configuring fields") The **Fields** section lists every field on your form. **First Name** and **Last Name** are locked and always present, and **Email** is required by default. Send To Many uses these to create or match a Shopify customer on submission. Click **Add new field** to add more. Available field types: * **Customer address:** A structured address field that saves to the customer's default address in Shopify (Pro and Enterprise plans). * **Email** and **Phone:** Validated contact fields. * **Single line text:** For company name, job title, or short answers. * **Multi-line text:** For special instructions or notes. * **Number:** For recipient counts or budgets. * **Date:** For requested delivery dates. * **Dropdown, Multiple choice, and Radio buttons:** Structured choices like product interest or budget range. * **Image:** For logos or brand assets. * **Checkbox:** A yes/no toggle for opt-ins. ![Send To Many inquiry form field type picker with customer address, text, number, date, and choice fields](/assets/images/inquiry-form-field-types-3dd5fa5bb72df6ff29ea7aa96d6eb91f.png) For each field, you can set the **label**, edit the **placeholder** text, mark it as **required**, and toggle **half width** to display two fields side by side. Drag fields to reorder them. Common fields for corporate gifting inquiries: estimated number of recipients, desired delivery date, product interest, budget range, and special instructions. For a full reference on every field option, see [Configuring inquiry form fields, logic, and notifications](https://docs.sendtomany.com/inquiry-form/configure-corporate-gifting-form/.md). ## Step 5: What's Next?[​](#step-5-whats-next "Direct link to Step 5: What's Next?") At this point you have a working inquiry form collecting submissions and notifying your team. Here are the additional capabilities you can explore. ### Conditional Logic[​](#conditional-logic "Direct link to Conditional Logic") Show or hide fields based on another field's value. For example, add a checkbox labeled "Customize your gift with a logo?" and an image upload field for "Company logo." Set the image field to appear only when the checkbox is checked. This keeps the form short for simple inquiries while capturing detail when needed. ![Conditional logic showing company logo upload field when branding checkbox is checked](/assets/images/configuring-conditional-logo-123b999c6064cc3d460f367051eae38c.png) Conditional fields must reference a checkbox that appears **before** them in the form. If you don't see a field in the conditional logic dropdown, move the controlling checkbox higher in the field order. ### File Uploads and Import Templates[​](#file-uploads-and-import-templates "Direct link to File Uploads and Import Templates") The **import file** field type lets customers attach recipient address spreadsheets (CSV, XLSX, XLS, Numbers) directly on the form. When you open the inquiry in Send To Many, the file is already queued for import with no download and re-upload needed. ![Import file field settings for recipient spreadsheet uploads](/assets/images/configuring-import-field-f2ae7d72663253a19f0e10dc6d5f2edb.png) The field is optional to fill, so customers without a spreadsheet ready can still submit their inquiry. The form includes a **default import format** with standard recipient columns (name, email, phone, address, product, quantity, gift message), so the import file field and the downloadable template work out of the box with no setup. ![Send To Many inquiry form default import format with standard recipient columns and download template button](/assets/images/default-import-format-dbf88a094167171e1b06f896ddc5aa6a.png) Want different columns? Add your own import format and upload a **template spreadsheet** that customers can download from the form before filling in their own data. This standardizes the data you receive by giving customers a pre-formatted file with the exact columns you need. If your saved [Import Format](https://docs.sendtomany.com/upload/saved-import-formats/.md) matches an uploaded file's column headers, it applies automatically. warning Do not include real customer information in your template. Any rows in the uploaded file will be visible to everyone who downloads it from your storefront. ### Customer Address Field (Pro and Enterprise)[​](#customer-address-field-pro-and-enterprise "Direct link to Customer Address Field (Pro and Enterprise)") Add a **customer address** field to capture a complete address with the inquiry. For new customers, the submitted address is saved as the Shopify customer's default address; for existing customers, it's set as the billing address on the Send created from the inquiry. Either way, it's a great way to collect a billing address from the start. Optional address autocomplete gives customers suggestions as they type, and every label in the address entry experience is editable and translatable. See [the customer address field](https://docs.sendtomany.com/inquiry-form/configure-corporate-gifting-form/.md#the-customer-address-field) for details. ### Multiple Configurations and Translations[​](#multiple-configurations-and-translations "Direct link to Multiple Configurations and Translations") On Pro and Enterprise plans, you can create [multiple form configurations](https://docs.sendtomany.com/inquiry-form/configure-corporate-gifting-form/.md#multiple-form-configurations) and choose one per placement in the theme editor: for example, a corporate gifting form on one page and a B2B form on another. All plans can [translate form text](https://docs.sendtomany.com/inquiry-form/configure-corporate-gifting-form/.md#translations) using the language picker at the top of the form settings. ### Customize Appearance[​](#customize-appearance "Direct link to Customize Appearance") The form inherits your theme's styling by default. For finer control, click the inquiry form section in the theme editor to adjust **padding**, **margins**, and **background color**. For advanced styling, add custom CSS through your theme's code editor. ### After Submission Settings[​](#after-submission-settings "Direct link to After Submission Settings") Configure what happens after a customer submits: show a confirmation message or redirect to a URL. Most merchants use the confirmation message with a heading like "Inquiry received" and body text letting the customer know your team will follow up. ## What Happens When Inquiries Come In[​](#what-happens-when-inquiries-come-in "Direct link to What Happens When Inquiries Come In") When a customer submits the form, your team receives an email notification. Open Send To Many, go to Manage Sends, and click the inquiry. From there, review the customer's responses and any uploaded files, then walk through the standard Send workflow: configure the send preset, import recipients, match products, validate addresses, and generate an invoice. See [Managing and converting corporate gifting inquiries](https://docs.sendtomany.com/tutorials/multi-recipient-orders/manage-and-convert-inquiries/.md) for the full submission-to-invoice walkthrough. ## Next Steps[​](#next-steps "Direct link to Next Steps") * [How the corporate gifting inquiry form works](https://docs.sendtomany.com/inquiry-form/how-corporate-gifting-inquiry-form-works/.md): Conceptual overview of the feature * [Configuring inquiry form fields, logic, and notifications](https://docs.sendtomany.com/inquiry-form/configure-corporate-gifting-form/.md): Full reference for every field type and setting * [Managing and converting corporate gifting inquiries](https://docs.sendtomany.com/tutorials/multi-recipient-orders/manage-and-convert-inquiries/.md): The inquiry-to-Send workflow --- # Setting Up Multi-Recipient Checkout on Shopify A step-by-step guide to launching multi-recipient checkout on Shopify: set up recipient fields, test the experience, configure order processing, and go live. This guide walks you through setting up multi-recipient checkout from scratch. We'll start with the settings your shoppers interact with directly, add the checkout to a test page so you can try it yourself, then configure how orders are processed behind the scenes. By the end, you'll have a working checkout ready to go live on your storefront. The recommended setup order: 1. Configure the shopper experience (recipient fields, gift messages, shipping) 2. Add the checkout to a test page 3. Test the full flow with a real order 4. Configure order processing settings 5. Explore additional options 6. Go live on your storefront ## Before You Start[​](#before-you-start "Direct link to Before You Start") Make sure you have [an active Send To Many plan](https://docs.sendtomany.com/settings/shopify-bulk-order-pricing-and-plans/.md). Multi-recipient checkout is available on all monthly or annual plans. Some advanced features like multiple checkout configurations and product customization fields require a Pro plan or higher. ## Step 1: Configure the Shopper Experience[​](#step-1-configure-the-shopper-experience "Direct link to Step 1: Configure the Shopper Experience") Start with the settings your shoppers will see and interact with. In your Shopify admin, go to **Apps → Send To Many → Settings** and click **Multi-recipient cart v2**. ![Send To Many settings page with multi-recipient cart v2 highlighted](/assets/images/settings-main-page-ab1e146d78a57e8a229fab1a3a33da19.png) If this is your first time opening checkout settings, you'll see an enable prompt. Click **Enable multi-recipient cart v2** to activate the checkout and access the settings. ![Send To Many checkout enable prompt with activation banner](/assets/images/settings-checkout-enable-prompt-daeb76726e77d46f9c2ad78a0f576445.png) Once enabled, you'll see the settings page with a navigation menu on the left. We'll focus on three sections first: **Recipient fields**, **Gift message**, and **Shipping and/or delivery**. ### Recipient Fields[​](#recipient-fields "Direct link to Recipient Fields") The recipient fields tab controls what information your shoppers provide for each recipient. The defaults work well for most stores, but you can customize them to match your workflow. ![Recipient fields configuration showing field list and toggles in Send To Many checkout settings](/assets/images/settings-checkout-recipient-fields-0c323e00b0376313e170f1eccd056f6d.png) **Name** and **Address** are always required. Address uses Google autocomplete for fast, accurate entry. You can click on any field to edit its label, placeholder text, and options. For example, clicking the address field lets you toggle address autocomplete and PO Box restrictions. ![Edit address field modal with autocomplete and PO Box restriction options](/assets/images/settings-checkout-edit-address-field-modal-164519d9c9a5e5dcda9e40563f6f006b.png) Toggle on **Email** or **Phone** if you need to collect those for each recipient. You can also use **Split name** (top right) to separate the name field into first and last name. For most gifting use cases, the defaults (Name, Address, and optionally Email) are all you need. You can always add more fields later. ### Gift Message[​](#gift-message "Direct link to Gift Message") Click **Gift message** in the left navigation. This controls whether shoppers can mark orders as gifts and include a personal message for each recipient. ![Gift message settings with checkboxes and storage options in Send To Many checkout](/assets/images/settings-checkout-gift-message-f8c51e8668ba2bb44f1bcd301d72d7f3.png) Two options here: * **Show "This is a gift" checkbox:** Adds a checkbox to each recipient card. When checked, the order is flagged as a gift in Shopify. * **Show gift message field:** Adds a text field on each recipient card for a personal message. You can enable either or both. If you enable the gift message field, you can also adjust: * **Save gift message to:** Where the message is stored on the order. Options include Order notes, Order additional details, Line item attributes, and Order metafields. * **Max length:** Character limit for the message. * **Require gift message:** When enabled, shoppers must enter a message before proceeding. This only applies when "This is a gift" is checked. For most stores, saving to **Order notes** is the simplest option. Your fulfillment team can see the message directly on the order page in Shopify. ### Shipping and/or Delivery[​](#shipping-andor-delivery "Direct link to Shipping and/or Delivery") Click **Shipping and/or delivery** in the left navigation. This is where you configure shipping date selection for your shoppers. If you want shoppers to pick a shipping or delivery date, check **Show shipping date picker**. You'll then choose between two modes: * **One date for all recipients:** A single date picker appears once, and the selected date applies to every recipient. * **Date per recipient:** Each recipient card gets its own date picker, so shoppers can schedule different delivery dates. ![Shipping date picker configuration with date modes, storage options, and availability rules](/assets/images/settings-checkout-shipping-date-picker-82d096b79761e508f5945dd9faac8eff.png) Below the date picker mode, you'll configure where the date is stored and how it's formatted: * **Save shipping date to:** Choose Order additional details, Line item attributes, or Order metafields. If you use metafields, you'll also select the metafield definition. * **Order date format:** The machine-readable format stored on the order (e.g., YYYY-MM-DD). * **Customer date format:** The human-readable format shown in the date picker (e.g., MMM dd, YYYY). **Date availability rules** let you control which dates shoppers can select. Set a minimum offset (e.g., 1 day from today) and maximum offset (e.g., 30 days out), and add rules to block specific dates or days of the week. ![Date availability rules showing blocked dates and disabled days of the week](/assets/images/settings-checkout-date-rules-95c03095a69b7cc69477767d69c5e480.png) For example, you might disable weekends and specific holidays so shoppers can only select business days within your shipping window. If you don't need date selection, leave the shipping date picker unchecked. You can always enable it later. ## Step 2: Add the Checkout to a Test Page[​](#step-2-add-the-checkout-to-a-test-page "Direct link to Step 2: Add the Checkout to a Test Page") Before going live, add the checkout to a test page so you can see exactly what your shoppers will experience. This takes about two minutes in the Shopify theme editor. ### Open the Theme Editor[​](#open-the-theme-editor "Direct link to Open the Theme Editor") From the checkout settings page, click the external link icon next to **Placement** to jump directly to the theme editor. Alternatively, go to **Online Store → Themes → Customize** in your Shopify admin. ### Create a Test Template[​](#create-a-test-template "Direct link to Create a Test Template") 1. In the theme editor, use the page template dropdown at the top to create a new template. Name it something like "multi-recipient-test". 2. In the template, click **Add section** or **Add block** and select **Multi Recipient Cart v2** from the app blocks. 3. The checkout block will appear in the template with its default settings. ![Shopify theme editor with Multi Recipient Cart v2 block added and settings panel visible](/assets/images/theme-editor-checkout-preview-with-addons-4ccd3017a1215002b8bb4936657f6cba.png) In the block settings panel on the right, you'll see options for: * **Recommended products collection:** Optionally select a collection to show as add-on suggestions at the top of the checkout page. * **Layout:** Page width, column widths, and spacing controls. * **Colors & Typography:** Match colors, fonts, and sizing to your theme. Save the template. ### Create a Test Page[​](#create-a-test-page "Direct link to Create a Test Page") 1. Go to **Online Store → Pages** in your Shopify admin. 2. Click **Add page**. 3. Set the title (e.g., "Multi-Recipient Test"). 4. In the **Theme template** dropdown (bottom right), select the template you just created. 5. Save the page. Note the page URL. You'll use it in the next step to navigate directly to the checkout. ## Step 3: Test the Full Flow[​](#step-3-test-the-full-flow "Direct link to Step 3: Test the Full Flow") Now run through the checkout as a shopper would. This is the best way to verify your settings before going live. 1. **Add a product to your cart.** Visit your storefront, browse to a product, and add it to your cart. 2. **Navigate to your test page.** Go directly to the URL of the test page you created (e.g., yourstore.com/pages/multi-recipient-test). 3. **Add a test recipient.** Fill in a name and address. If you enabled gift messages, try adding one. If you have a shipping date picker, select a date. 4. **Review the order summary.** Check that products, quantities, shipping, and totals look correct in the right-side summary panel. 5. **Add a second recipient.** Click **+ Add recipient** and fill in another address. Verify that shipping calculates independently for each recipient. 6. **Complete Shopify checkout.** Click **Checkout** and complete the test transaction. 7. **Review the orders.** In your Shopify admin, check that you see a gifter (aggregate) order capturing the full revenue and individual recipient orders for each address. ![Filled-out recipient card with products, gift message, and shipping rate in multi-recipient checkout](/assets/images/checkout-filled-recipient-with-gift-message-e8cb66de42bce48d84fb3e697736fda8.png) If something doesn't look right, adjust your settings and test again. After completing a checkout, the session is cleared and you can start fresh. To clean up test orders afterward, see [How to cancel and refund multi-recipient orders](https://docs.sendtomany.com/tutorials/order-management/cancel-and-refund-orders/.md). ## Step 4: Configure Order Processing[​](#step-4-configure-order-processing "Direct link to Step 4: Configure Order Processing") Now that you've seen the checkout working, configure how orders are handled behind the scenes. Go back to your checkout settings and click **Order processing** in the left navigation. ![Order processing settings showing revenue, notification, and inventory options](/assets/images/settings-checkout-order-processing-detail-c62155e089bcc8c35e46e0ae10346a1e.png) ### Order Revenue[​](#order-revenue "Direct link to Order Revenue") This is the most important setting to get right. Choose how revenue appears on recipient orders: * **Create orders marked as paid using the calculated amount:** Each recipient order shows the full price, tax, and shipping. Good for per-order accounting detail, but revenue appears on both the aggregate and recipient orders. * **Create orders marked as paid with $0 amounts:** Recipient orders are created at $0. All revenue lives on the gifter order only. Avoids double-counting in Shopify reports. Our recommendation We recommend using calculated amounts. It creates the most thorough reporting and the best customer experience, with full price, tax, and shipping detail on every order. The tradeoff is that revenue appears on both the aggregate order and each recipient order, which means Shopify reports will show doubled-up revenue unless you filter by order tags. See [Filtering multi-recipient orders in Shopify reports](https://docs.sendtomany.com/analytics/shopify-report-filtering-send-to-many/.md) for how to handle this. ### Shipping Notifications[​](#shipping-notifications "Direct link to Shipping Notifications") Control who gets Shopify's order confirmation and shipping notification emails: * **Suppress all notifications:** No emails sent. The right choice for most gifting use cases where you don't want recipients getting order confirmations. * **Send to recipients:** Shopify sends notifications directly to each recipient's email. * **Send to customer:** Notifications go to the gifter. Be cautious: a 50-recipient order could generate 200+ emails to the gifter. ### Other Order Settings[​](#other-order-settings "Direct link to Other Order Settings") The order processing tab also includes: * **Inventory handling:** Whether to deduct inventory from recipient orders (default: take from inventory). * **Order name template:** Customize how recipient orders are named in Shopify. * **Child order tags / Aggregate order tags:** Tags applied to recipient and gifter orders. Useful for filtering in Shopify, triggering Flow automations, and routing to fulfillment services. * **Auto cancel parent order when paid:** Automatically cancels the gifter order after payment so it doesn't appear in your fulfillment queue. We recommend against enabling this unless it's absolutely necessary for your ERP or fulfillment workflow, as it creates confusion for customers who see a cancelled order in their account. * **Itemize tax on aggregate tax line item:** Shows a detailed tax breakdown on the gifter order instead of a single lump sum. For a full reference on every order processing option, see [Core settings](https://docs.sendtomany.com/checkout/configure-checkout-core-settings/.md). ### Discounts[​](#discounts "Direct link to Discounts") Click **Discounts** in the left navigation to configure how discount codes work in your checkout. ![Discounts settings page with discount code modes and volume discount options](/assets/images/settings-checkout-discounts-1390067fa6318b880727d25e22127ca5.png) Three modes for discount codes: * **Disabled:** Shoppers cannot enter discount codes. * **Applied per recipient:** The discount code field appears on the checkout page. The code is validated and applied to each recipient's order individually, respecting any product or collection restrictions on the code. * **Applied to the entire order:** The code is entered on Shopify's payment page and applied to the aggregate invoice. Free shipping and product-specific discounts won't work with this option. Shopify's automatic discounts (like "Buy X Get Y") always apply regardless of this setting. **Volume discounts** let you offer tiered pricing based on the number of recipients or total order value. For example, 10% off orders over $500, or 15% off when sending to 10+ recipients. Shoppers see a progress message as they add recipients, encouraging larger orders. ![Volume discount tier configuration with recipient count and order value thresholds](/assets/images/settings-checkout-volume-discounts-tier-ce90bf4da066092d305e3d6f14ac620c.png) For full details on setting up discount tiers, see [Discounts in multi-recipient checkout](https://docs.sendtomany.com/checkout/discounts-in-multi-recipient-checkout/.md). ## Step 5: What's Next?[​](#step-5-whats-next "Direct link to Step 5: What's Next?") At this point you have a working checkout with recipient fields, order processing, and discounts configured. Here are the additional capabilities you can explore. ### Customize the Look and Feel[​](#customize-the-look-and-feel "Direct link to Customize the Look and Feel") The theme editor block settings give you control over colors, typography, spacing, and card styles without writing any code. Click the checkout block in the theme editor to access these settings. ![Theme editor block settings panel showing layout, colors, and typography options for multi-recipient checkout](/assets/images/theme-editor-block-settings-ALL-70d9a9058f6a1dfc197073121ca86c82.png) For deeper customization, you can write custom CSS that targets the checkout section. See [CSS customization](https://docs.sendtomany.com/checkout/customize-checkout-with-css/.md) for selectors and examples. ### Use a Collection Page[​](#use-a-collection-page "Direct link to Use a Collection Page") Instead of placing the checkout on a standalone page, you can add it to a collection page template. When placed on a collection page, the checkout uses the collection's products instead of the cart contents. This is useful for creating dedicated gifting pages where shoppers browse and select from a curated set of products. ![Theme editor showing multi-recipient checkout block on a Shopify collection page template](/assets/images/theme-editor-collection-page-checkout-block-f7ffc62974d18e600555c9bbd4884702.png) ### Edit Text and Translations[​](#edit-text-and-translations "Direct link to Edit Text and Translations") Every label, button, and message in the checkout can be customized. Go to **Settings → Text and translations** in Send To Many to edit the copy. ### Product Customization Fields[​](#product-customization-fields "Direct link to Product Customization Fields") If you sell products that require personalization (custom engravings, card messages, logo uploads), you can add custom fields that appear in the checkout for specific products. ![Product customization fields list in Send To Many checkout settings](/assets/images/settings-checkout-product-custom-fields-list-8b0ed1b4deacf1e3bda0b98f87d46e6f.png) Each field is configured with a type (text input or file upload), scope (global or per-recipient), and the products it applies to. When a shopper adds a product with custom fields to a recipient, the fields appear on the recipient card. Product customization is available on Pro plans and higher. See [Product customization](https://docs.sendtomany.com/checkout/product-customization-multi-recipient-checkout/.md) for setup details. ### Order-Level Fields[​](#order-level-fields "Direct link to Order-Level Fields") Order-level fields collect information from the gifter that applies to the entire order, not individual recipients. These appear once in the order summary section above the checkout button. ![Order-level fields configuration in Send To Many checkout settings](/assets/images/settings-checkout-order-level-fields-c2de0571320c8aec0aa01a488edbea21.png) Field types include text, number, date, dropdown, checkbox, and more. You can also set up conditional logic so certain fields only appear based on the value of another field. ### Bundle and Customization App Compatibility[​](#bundle-and-customization-app-compatibility "Direct link to Bundle and Customization App Compatibility") If you use Shopify bundle apps or product customization apps, enable **Keep cart line item properties** in the [advanced checkout settings](https://docs.sendtomany.com/checkout/configure-checkout-additional-settings/.md) tab. This passes through line item properties from the cart to recipient orders, preserving bundle components, engraving text, and other customization data for fulfillment. ### Advanced Shipping[​](#advanced-shipping "Direct link to Advanced Shipping") By default, the checkout uses your Shopify shipping rates. For more advanced setups: * **Local delivery and pickup:** Enable **Include local rates from Shopify** in your checkout shipping settings to show local delivery and pickup options alongside standard shipping. * **Third-party shipping integrations:** Send To Many supports Zapiet (store pickup and local delivery) and custom shipping API integrations. See [Zapiet store pickup and local delivery integration](https://docs.sendtomany.com/integrations/shopify-zapiet-store-pickup-local-delivery/.md) or [Custom shipping API integration](https://docs.sendtomany.com/integrations/shopify-custom-shipping-dates-rates-api/.md) for setup. * **Shipping rate filters:** Hide specific rates from shoppers during checkout. Configure in the [advanced checkout settings](https://docs.sendtomany.com/checkout/configure-checkout-additional-settings/.md). ### Multiple Checkout Configurations[​](#multiple-checkout-configurations "Direct link to Multiple Checkout Configurations") On Pro plans and higher, you can create multiple checkout configurations with different settings for different use cases. For example, a standard storefront checkout, a private B2B page with different products and payment terms, and a staff-facing order entry page. Each configuration is assigned to a specific page template in the theme editor and can have its own recipient fields, discounts, order processing settings, and translations. ## Step 6: Go Live[​](#step-6-go-live "Direct link to Step 6: Go Live") Once you're happy with your test checkout, it's time to add it to your real storefront. There are three common approaches depending on your cart setup. ### Option A: Replace Your Cart Page[​](#option-a-replace-your-cart-page "Direct link to Option A: Replace Your Cart Page") The simplest approach. Add the checkout block directly to your cart page template. Shoppers see the multi-recipient checkout whenever they view their cart. 1. In the theme editor, navigate to your **Cart** page template. 2. Add the **Multi Recipient Cart v2** app block to the template. 3. Save and publish. With this setup, customers check out through the multi-recipient flow whether they're sending to one recipient or many. There's no need for them to choose between checkout options, and single-recipient orders work just as smoothly as multi-recipient ones. ### Option B: Link from the Cart Page[​](#option-b-link-from-the-cart-page "Direct link to Option B: Link from the Cart Page") Keep your standard cart page and add a button that takes shoppers to a separate multi-recipient checkout page. This is the most common setup for stores that want to offer both a standard single-recipient checkout and the multi-recipient flow side by side. In the theme editor, add the **Multi Checkout Button** app block to your cart page template. Use the auto-format and auto-position options to place it next to your existing checkout button. ### Option C: Drawer or Slide Cart[​](#option-c-drawer-or-slide-cart "Direct link to Option C: Drawer or Slide Cart") If your store uses a drawer cart, slide-out cart, or flyout cart, the auto-positioning may work automatically. If it doesn't, you can add a button directly to your cart drawer's theme code with a link to the checkout page. See [Drawer and slide cart setup](https://docs.sendtomany.com/checkout/drawer-slide-cart-setup/.md) for step-by-step instructions. ### After Going Live[​](#after-going-live "Direct link to After Going Live") Once the checkout is live on your storefront: * **Place a real test order** to verify the full flow with actual payment processing. * **Check your order tags** in Shopify to make sure recipient and aggregate orders are tagged correctly for your reporting workflow. * **Review notification settings** to confirm emails are going where you expect (or being suppressed). * **Monitor the first few orders** to catch any issues with shipping rate calculation, inventory, or discount code behavior. ## Next Steps[​](#next-steps "Direct link to Next Steps") * [How multi-recipient checkout works](https://docs.sendtomany.com/checkout/how-multi-recipient-checkout-works/.md): Full overview of the shopper experience and order lifecycle * [Core settings](https://docs.sendtomany.com/checkout/configure-checkout-core-settings/.md): Detailed reference for every order processing and shipping option * [Discounts](https://docs.sendtomany.com/checkout/discounts-in-multi-recipient-checkout/.md): Discount codes, volume discounts, and Shopify automatic discounts * [Product customization](https://docs.sendtomany.com/checkout/product-customization-multi-recipient-checkout/.md): Custom fields for logos, text, and file uploads * [Multiple configurations](https://docs.sendtomany.com/checkout/multiple-checkout-configurations/.md): Different checkout setups for different pages * [CSS customization](https://docs.sendtomany.com/checkout/customize-checkout-with-css/.md): Match the checkout to your store's branding * [Drawer and slide cart setup](https://docs.sendtomany.com/checkout/drawer-slide-cart-setup/.md): Add the checkout button to non-standard cart layouts --- # Bulk Order Dashboard & Data Exports for Shopify Track send activity, order status, and revenue from the bulk order dashboard on Shopify, and export detailed CSV data for fulfillment, tax, and full analysis. The dashboard gives you an at-a-glance view of Send activity, and every Send has detailed export options for fulfillment tracking and reporting. ## Dashboard Metrics[​](#dashboard-metrics "Direct link to Dashboard Metrics") The main dashboard displays key metrics across all your Sends: * **Total Sends**: all time, billing period, or last 30 days * **Total orders generated**: count of all recipient orders across all Sends * **Revenue tracking**: total revenue from Send activity * **Checkout metrics**: started and paid checkouts for multi-recipient flows * **Inquiry form submissions**: tracking for inquiry form activity if enabled ## Send Summary Page[​](#send-summary-page "Direct link to Send Summary Page") When you view details for a specific Send, you get a complete picture: * View all generated orders with status, fulfillment info, and tracking numbers * Click **View in Shopify** to filter your Shopify admin to just that Send's orders * Access direct links to each order in your Shopify admin * See failed order details and retry individual or bulk orders tip Use the "View in Shopify" button to quickly see all orders from a Send in your Shopify admin without searching. ## Export Options[​](#export-options "Direct link to Export Options") Send To Many provides multiple export formats: * **Send summary export**: all orders with status, tracking, delivery info (CSV) * **Fulfillment status and tracking export**: focused fulfillment data for logistics * **Tax detail export**: tax info for accounting and compliance * **Excluded rows export**: records not processed * **Analytics data export**: detailed metrics for custom reporting Each export is in CSV format and ready to download from the Send detail page. See [Filtering Shopify Reports](https://docs.sendtomany.com/analytics/shopify-report-filtering-send-to-many/.md) to avoid double-counting revenue. --- # Analytics: Sends, Orders, and Revenue Track multi-recipient order performance across checkout, inquiries, and uploads on Shopify: view funnels, export reports, and audit send detail in one place. Send To Many includes a dedicated **Analytics** area so you can understand performance across all send types, quantify the value you're getting from the app, and export clean reporting for operations and finance, all in one place. Reporting includes **all completed sends** and excludes **archived sends** and **test sends** (any send with "test" in the name). Metrics are **updated hourly**. For plans that include user permissions, the Analytics section is visible to Managers or Administrators only. ## Analytics overview: your top-level snapshot across all send types[​](#analytics-overview-your-top-level-snapshot-across-all-send-types "Direct link to Analytics overview: your top-level snapshot across all send types") ![Send To Many analytics overview showing total sends, orders, revenue, and GMV metrics in Shopify](/assets/images/analytics-overview-b96a62d2bf82e38cf8b3da780bdabed2.png) The **Overview** tab aggregates activity across checkout, inquiries, and manual uploads so you can track volume and revenue trends without stitching together data from multiple sources. You can filter by date, compare periods, view results by day/week/month, and export a CSV for the selected range. **What you'll see** * **Total sends:** Completed sends from all sources (excluding archived and test sends) * **Total orders:** Total child orders generated for completed sends * **Total revenue:** Gross sales + shipping + tax − discounts * **Total GMV:** GMV of items sold (excluding discounts) * **GMV per order:** Average GMV per order for the selected period * **GMV per send:** Average GMV per send for the selected period * **Export:** CSV export of all metrics by selected date range and period ## Checkout analytics: understand your multi-recipient checkout funnel[​](#checkout-analytics-understand-your-multi-recipient-checkout-funnel "Direct link to Checkout analytics: understand your multi-recipient checkout funnel") ![Send To Many checkout analytics showing conversion funnel from sessions to completed purchases in Shopify](/assets/images/analytics-checkout-db14fa6279458f1497f82eb27ea04334.png) The **Checkouts** tab is designed for storefront teams who want to measure adoption and conversion of multi-recipient checkout. It includes a funnel view so you can see where customers drop off, from visiting a page with the app block, to adding addresses, to starting checkout, to completing a purchase. **What you'll see** * **Funnel:** Sessions → address added → checkout started → purchase completed * **Total sessions:** Sessions start when a customer visits any page containing the Send To Many checkout app block * **Total completed:** Storefront checkouts with a completed purchase * **Total orders:** All child orders generated from storefront checkouts * **Total revenue:** Gross sales + shipping + tax − discounts * **Revenue per order** * **Revenue per send** ## Inquiry analytics: track performance from inquiry form submissions[​](#inquiry-analytics-track-performance-from-inquiry-form-submissions "Direct link to Inquiry analytics: track performance from inquiry form submissions") ![Send To Many inquiry analytics showing sends and revenue from inquiry form submissions in Shopify](/assets/images/analytics-inquiries-5d544952c53ba417e837ab92267b1276.png) The **Inquiries** tab reports on sends that start with an inquiry form submission, helping teams track how inquiry-driven gifting converts into orders and revenue over time. **What you'll see** * Metrics for all sends started from an inquiry form submission ## Manual upload analytics: reporting for admin-generated sends[​](#manual-upload-analytics-reporting-for-admin-generated-sends "Direct link to Manual upload analytics: reporting for admin-generated sends") ![Send To Many manual upload analytics showing order volume and revenue from spreadsheet uploads in Shopify](/assets/images/analytics-manual-uploads-6c17982e55945dcb0a6b38edde98a7e3.png) The **Manual Uploads** tab reports on orders generated in admin via order uploads, so ops teams can quantify volume and revenue from spreadsheet-driven or admin-created sends. **What you'll see** * Orders generated in admin via order uploads ## Send Details: searchable, filterable send and order reporting (exportable)[​](#send-details-searchable-filterable-send-and-order-reporting-exportable "Direct link to Send Details: searchable, filterable send and order reporting (exportable)") ![Send To Many send details table showing searchable and filterable send reporting in Shopify](/assets/images/analytics-send-details-e41d21059d25fc7ce06af7b79e3be39c.png) ![Send To Many send details expanded to show individual order details with financial status in Shopify](/assets/images/analytics-send-details-orders-083257fa340c1fd121c367ceb157b757.png) The **Send Details** tab provides a detailed table of sends and orders so you can audit activity, reconcile results, and export operational reporting. It's searchable and filterable, and large exports are emailed to the user. **What you can do** * View a full, searchable, filterable table of send and order details; export as CSV (large exports emailed) * Filter by: * **Send source:** Checkout, Manual, or Inquiry * **Order type:** Parent or child * **Order financial status** * **Created date** or **Completed date** * Search by **send name** or **send ID** ## Sales Tax details: export tax breakdowns across sends and orders[​](#sales-tax-details-export-tax-breakdowns-across-sends-and-orders "Direct link to Sales Tax details: export tax breakdowns across sends and orders") ![Send To Many sales tax details export showing per-order tax rate breakdowns in Shopify](/assets/images/analytics-sales-tax-26c7c37ec305cedb185a5a709ca100c8.png) The **Sales Tax details** tab is built for finance and reporting workflows that need a reliable export of taxes collected across sends and child orders. It exports one row per tax rate per order, including rate name, rate, and amount, and includes null rows for orders without tax so you can confirm taxable jurisdictions and nexus assumptions. **What you'll see** * One row per tax rate per order: **rate name**, **rate**, and **rate amount** * Includes null rows for orders that did not include tax (to help confirm nexus / taxable jurisdictions) ## Next steps[​](#next-steps "Direct link to Next steps") * [Filter Shopify reports for Send To Many orders](https://docs.sendtomany.com/analytics/shopify-report-filtering-send-to-many/.md): Exclude double-counted revenue from recipient orders in Shopify's built-in analytics * [Understand aggregate orders and invoicing](https://docs.sendtomany.com/orders/shopify-aggregate-gifter-order-management/.md): Learn how gifter orders and recipient orders relate to the revenue metrics shown in Analytics --- # How to Filter Shopify Reports to Avoid Double-Counting Bulk Orders Filter Shopify analytics and reports to separate aggregate and recipient orders. Customize your Shopify analytics dashboard to avoid double-counting Send To Many revenue using tags and gateways. When you use **calculated values** for order revenue handling, both the aggregate invoice and individual recipient orders reflect revenue in Shopify. Without filtering, your reports will double-count Send To Many revenue. ## Why Double-Counting Happens[​](#why-double-counting-happens "Direct link to Why Double-Counting Happens") With calculated values, recipient orders show product prices, tax, and shipping. The aggregate order shows the total collected from the gifter. Shopify's built-in reports see both, so revenue gets counted twice. tip Inventory is **not** double-counted. Aggregate orders use custom line items as placeholders and don't draw real inventory. Only the recipient orders contain real products and affect inventory levels. ## Recommended Approach[​](#recommended-approach "Direct link to Recommended Approach") **For revenue, product sales, fulfillment, and sales tax reporting:** filter out the aggregate orders. In Shopify reports, exclude orders tagged **"Send to Many aggregate"**. The recipient orders contain the itemized product, shipping, and tax detail that these reports need. **For payout reconciliation:** the aggregate (parent) orders contain the actual transactions that Shopify pays out on. You can reconcile individual recipient orders back to their Sends using the data in **Analytics > Send Details** within Send To Many. **For sales tax reconciliation or third-party tax reporting:** all the detail you need is available in **Analytics > Sales Tax** within Send To Many, broken out by tax rate per recipient order per Send. **For isolating all Send To Many activity:** filter by the **"Send to Many #"** tag prefix, which appears on every order from a Send. ## How to Filter[​](#how-to-filter "Direct link to How to Filter") You can identify Send To Many orders using two key attributes: * **Order tags**: Every order from a Send is tagged **"Send to Many #\[Send ID]"**. Aggregate orders also get the **"Send to Many aggregate"** tag. Tags are the most reliable way to filter. * **Payment gateway**: Recipient orders show **"Send to Many"** as the gateway. Aggregate orders go through Shopify's standard gateway (since they're created from draft orders), so the gateway alone won't catch everything. To exclude aggregate orders from a Shopify report: 1. Open or create a report in **Shopify > Analytics**. 2. In the **Controls** panel, open **Filters** and set **Order tags** > **does not contain** > **Send to Many aggregate**. You can also add the filter directly in the ShopifyQL editor as a `WHERE` clause on `order_tags`. 3. Run the report to confirm aggregate orders are excluded. This removes all aggregate orders from the report, leaving only the recipient orders with their itemized detail. tip The "Send to Many aggregate" tag is added automatically to every aggregate order. You don't need to configure anything in Send To Many for this tag to appear. ## Customize Your Analytics Dashboard[​](#customize-your-analytics-dashboard "Direct link to Customize Your Analytics Dashboard") Filtering a report once fixes one view. To make your day-to-day numbers accurate, replace the standard sales reports on your Shopify Analytics dashboard with filtered versions. This is a one-time update, and it's a common pattern for merchants who need exceptions for revenue from specific channels. For each sales report on the dashboard: 1. Click into the full report from its dashboard card. 2. Add the **Order tags** filter described above so aggregate orders are excluded. 3. Click **Save as** and give the filtered report a clear name, such as "Total sales over time - dedupped". ![Shopify analytics report with a Send To Many aggregate order tag filter and the Save as button for saving a dedupped sales report](/assets/images/filtering-shopify-reports-save-filtered-report-22c644bcd6e823c1187945c033ccf574.png) 4. Back on the dashboard, remove the standard card and add your saved report in its place. ![Animation showing a standard Shopify analytics dashboard card being replaced with a filtered dedupped Send To Many sales report](/assets/images/customizing-analytics-dashboard-94491ca677403f58567b3aee3524d9fe.gif) warning Every section of the Analytics dashboard can be replaced with a filtered report, including the spark chart cards at the top. Spark charts elsewhere in the Shopify admin, like the sales summary on the admin **Home** page, **cannot be customized or filtered**, so those numbers will still include aggregate order revenue. For a complete step-by-step walkthrough, see the tutorial: [How to Customize Your Shopify Analytics Dashboard for Send To Many orders](https://docs.sendtomany.com/tutorials/advanced/customize-shopify-analytics-dashboard/.md). ### Which Standard Dashboard Reports Need Updating[​](#which-standard-dashboard-reports-need-updating "Direct link to Which Standard Dashboard Reports Need Updating") | Dashboard report | Recommendation | | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Total sales over time | Replace with a filtered copy. This is the headline number that double-counting inflates most visibly. | | Total sales breakdown | Replace with a filtered copy. Gross sales, discounts, net sales, shipping, and taxes are all affected. | | Total sales by product | Replace with a filtered copy. This also removes the aggregate orders' placeholder custom line items from product reporting. | | Total sales by sales channel | Replace with a filtered copy if you review channel revenue. | | Average order value over time | Replace with a filtered copy, and decide which orders count. Exclude aggregate orders to measure AOV per recipient order, or instead exclude orders tagged **"Send to Many Storefront-Child"** to treat each aggregate order as one large order and let bulk purchases raise your AOV. | | Total sales by referrer / social referrer / POS location | Replace with filtered copies if you use them. Test whether excluding aggregate (parent) or recipient (child) orders gives the attribution you want before saving. | | Gross sales, Returning customer rate, Orders fulfilled, Orders (spark charts) | Replace with filtered copies like any other dashboard card. | | Sessions over time / by device / by location / by referrer / by landing page | No change needed. Session reports aren't affected by order data. | | Conversion rate over time / breakdown | No change needed. These are session-based, and recipient orders aren't created from storefront sessions. | | Products by sell-through rate | No change needed. Inventory isn't double-counted. | | Customer cohort analysis | The order tags filter isn't available on customer-based reports, so this report can't be dedupped the same way. | tip If you use third-party reporting or accounting tools that pull Shopify order data, apply the same tag-based exclusion there so all your systems agree. ## If Using Zero-Dollar Recipient Orders[​](#if-using-zero-dollar-recipient-orders "Direct link to If Using Zero-Dollar Recipient Orders") No double-counting risk since recipient orders are $0. Revenue only on aggregate. You may still want to filter to separate STM orders from regular catalog orders. tip Work with your accounting team to set up standard filters before going live with large Sends. This ensures consistent reporting across your business. See [Dashboard and Exports](https://docs.sendtomany.com/analytics/shopify-bulk-order-dashboard-and-exports/.md) for export options and [Sales Tax Calculation](https://docs.sendtomany.com/tax-and-shipping/shopify-per-recipient-sales-tax-calculation/.md) for tax considerations. --- # Multi-Recipient Checkout: Advanced Settings Advanced settings for non-standard multi-recipient checkout on Shopify: cart mode, line item properties, B2B payment terms, and custom Liquid for gifting sends. Most checkout configuration is covered in [Core settings](https://docs.sendtomany.com/checkout/configure-checkout-core-settings/.md), [Discounts](https://docs.sendtomany.com/checkout/discounts-in-multi-recipient-checkout/.md), and [Product customization](https://docs.sendtomany.com/checkout/product-customization-multi-recipient-checkout/.md). This article covers additional settings for specialized use cases. Some are self-serve, like shipping rate filters and cart mode. Others are locked by default, in which case you can contact our support team at to enable them for your store. ## Shipping Rate Filters[​](#shipping-rate-filters "Direct link to Shipping Rate Filters") Shipping rate filters let you control which shipping rates shoppers see during checkout. This is useful when your Shopify shipping settings include rates you don't want available for multi-recipient orders, such as local pickup or special handling options. Open the **Shipping rate filters** tab in your multi-recipient checkout settings and click **Add shipping rate filter** to create one: * **Filter on:** Choose whether to match by **Title** (the rate name) or **Price** (the rate amount). * **Operator:** For title filters, choose Equals, Contains, Starts with, or Ends with. For price filters, choose a numeric comparison. * **Value:** The title text or price to match against. * **Applies when:** Choose when the filter is active. **Always** keeps it on for every checkout. **A matching rate is available** only applies the filter when at least one matching rate exists, so you never accidentally hide every rate and leave a recipient with no shipping option. Filtered rates are hidden from shoppers. All other available rates are still shown. ## Cart Mode[​](#cart-mode "Direct link to Cart Mode") These settings control how the multi-recipient cart behaves on the cart page and how cart items are assigned to recipients. * **Cart page mode:** Adds toggle buttons to the cart page so shoppers can switch between sending to a single recipient and sending to multiple recipients. Use this when most orders go to one address but you still want to offer multi-recipient sending. * **Always include all cart items on the first recipient:** When enabled, every item in the cart is automatically assigned to the first recipient. Shoppers can still add more recipients and adjust products from there. ## Advanced Settings[​](#advanced-settings "Direct link to Advanced Settings") * **Disable cart mode product customization:** When enabled, shoppers can't select different products for individual recipients. Every recipient receives the same products from the cart. * **Persist cart line item properties:** When enabled, cart line item properties are passed through to the parent and child order line items. Useful for stores that use line item properties for customization or metadata from other apps (bundle apps, engraving tools, etc.). * **Use payment terms at checkout for B2B customers:** When enabled, B2B payment terms (Net 15, Net 30, etc.) are applied at checkout for B2B customers. Payment terms are defined on the company location in Shopify. * **Staff mode:** Lets a team member build and submit a multi-recipient order on a customer's behalf. See [Staff order entry for multi-recipient orders](https://docs.sendtomany.com/checkout/shopify-staff-order-entry/.md) for the full workflow. ## Custom Liquid[​](#custom-liquid "Direct link to Custom Liquid") The Custom Liquid setting lets you inject Liquid code into the checkout page for advanced customization beyond CSS. This is useful for adding custom scripts, tracking pixels, or conditional content that depends on Shopify data. You'll find this option in the checkout section settings in the theme editor. Documentation for the checkout page's hooks and data API is coming soon. These hooks let you extend the checkout with custom logic, such as custom field validation rules, custom discount handling, and more. ## Next Steps[​](#next-steps "Direct link to Next Steps") * [Core settings](https://docs.sendtomany.com/checkout/configure-checkout-core-settings/.md): Order processing, recipient fields, and shipping options * [Discounts](https://docs.sendtomany.com/checkout/discounts-in-multi-recipient-checkout/.md): Discount codes, volume discounts, and Shopify automatic discounts * [Product customization](https://docs.sendtomany.com/checkout/product-customization-multi-recipient-checkout/.md): Custom fields for logos, text, and file uploads * [CSS customization](https://docs.sendtomany.com/checkout/customize-checkout-with-css/.md): Match the checkout to your store's branding --- # Configure Multi-Recipient Checkout: Order Processing, Recipient Fields & Shipping Set up order processing, recipient fields, shipping rates, and delivery dates for multi-recipient checkout on Shopify, plus notifications and inventory options. The multi-recipient checkout settings page in Send To Many controls how orders are created, what information shoppers provide, and how shipping works. You'll find these settings under **Multi-recipient checkout** in your app settings, organized into tabs along the left side. This article covers the core settings most merchants configure first: order processing, recipient fields, and shipping and delivery options. For form fields, upsell discounts, shipping rate filters, and advanced settings, see [Additional settings](https://docs.sendtomany.com/checkout/configure-checkout-additional-settings/.md). For a step-by-step walkthrough of configuring and deploying checkout for the first time, see the [Setting up multi-recipient checkout](https://docs.sendtomany.com/tutorials/storefront-setup/set-up-multi-recipient-checkout/.md) tutorial. ## Order Processing[​](#order-processing "Direct link to Order Processing") ![Send To Many order processing settings showing revenue handling, notifications, and inventory options](/assets/images/settings-checkout-order-processing-detail-c62155e089bcc8c35e46e0ae10346a1e.png) The order processing tab controls how recipient orders are created in Shopify after a shopper completes checkout. ### Order Revenue[​](#order-revenue "Direct link to Order Revenue") Choose how revenue appears on recipient orders: * **Create orders marked as paid using the calculated amount:** Each recipient order shows the full calculated price, tax, and shipping. Use this when you need per-order revenue detail for accounting or tax reporting. * **Create orders marked as paid with $0 amounts:** Recipient orders are created at $0. All revenue is captured on the parent order only. This avoids double-counting revenue in Shopify reports. Revenue reporting impact This is the most important configuration choice for checkout. If you use calculated amounts, revenue appears on both the parent order and each recipient order, which means Shopify reports will double-count unless you filter by order tags. If you use $0 amounts, revenue is only on the parent order, but you won't see per-recipient pricing detail on recipient orders. We recommend discussing this with your accounting team before going live. ### Recipient Order Notifications[​](#recipient-order-notifications "Direct link to Recipient Order Notifications") These settings control notifications on the **recipient orders** that Send To Many generates after checkout. They do not affect the billing customer's order confirmation from Shopify, which is always sent for the parent order. * **Suppress notifications:** No emails are sent for recipient orders. Orders use a blackhole email address so Shopify's automatic notifications go nowhere. This is the right choice for most gifting use cases where you don't want recipients getting order confirmation emails. * **Send to recipients:** Shopify sends order and shipping notifications for each recipient order directly to the recipient's email address. * **Send to customer:** Notifications for each recipient order go to the gifter (the person who placed the order). Use "Send to customer" with caution If you choose to send notifications to the customer, the gifter receives shipping emails for each recipient in the order. For a 50-recipient send, that can mean hundreds of emails. **Send order confirmation email:** An additional toggle that controls whether Shopify's order confirmation email is sent for each recipient order (separate from delivery/shipping notifications). note The billing customer always receives a standard Shopify order confirmation for their parent (aggregate) order. The settings above only control what happens with the individual recipient orders. If you want to make the order history experience clearer for returning customers, see [Customer account extensions](https://docs.sendtomany.com/customer-accounts/shopify-customer-send-history-page/.md) for Send history banners and order status blocks. ### Inventory Handling[​](#inventory-handling "Direct link to Inventory Handling") * **Take from inventory:** Deducts inventory for each recipient order. Standard for most use cases. * **Don't take from inventory:** Skips inventory deduction on recipient orders. Use this if you're managing inventory manually or through another system. ### Save Recipient Addresses to Customer[​](#save-recipient-addresses-to-customer "Direct link to Save Recipient Addresses to Customer") When enabled, each recipient's shipping address is added to the gifter's Shopify customer record, making addresses available for future orders. Disable this if your gifters regularly send to large recipient lists, since it can result in many addresses on a single customer profile. ### Order Name Template[​](#order-name-template "Direct link to Order Name Template") Customize how recipient orders are named in Shopify. Leave blank to use Shopify's default sequential naming. You can use dynamic variables to make the relationship between parent and recipient orders clearer or to make recipient names searchable in the Shopify admin. Examples: * `{order_name}.{row_index}` — produces names like `#1042.1`, `#1042.2`, `#1042.3`, making it easy to see which recipient orders belong to the same parent. * `{send_id}-{first_name}-{last_name}` — produces names like `284-Jane-Smith`, making individual recipient orders searchable by name. ### Order Tags[​](#order-tags "Direct link to Order Tags") Apply Shopify tags to recipient orders and parent orders respectively. Tags are useful for filtering orders in Shopify, triggering Shopify Flow automations, and routing orders to fulfillment services. Send To Many automatically adds tags to every order: "Send to Many #\[ID]" on all recipient and parent orders, and "Send to Many aggregate" on all parent orders. You can add your own custom tags alongside them. ### Additional Options[​](#additional-options "Direct link to Additional Options") * **Max recipients:** Set the maximum number of recipients a shopper can add to a single multi-recipient order. Leave blank for no limit. This is useful for capping order size when you have inventory or fulfillment constraints. * **Auto cancel parent order when paid:** Automatically cancels the parent order after payment is collected and recipient orders are generated. We recommend against enabling this Cancelling the parent order creates confusion for customers who see a cancelled order in their account and may contact your support team. Only enable this if your ERP or fulfillment system requires it to prevent the parent order from entering the fulfillment queue. * **Show tax breakdown on aggregate tax line item:** Displays a detailed tax breakdown on the parent order's aggregate tax line item instead of a single lump sum. ## Recipient Fields[​](#recipient-fields "Direct link to Recipient Fields") ![Send To Many recipient fields configuration showing default and custom fields with drag-and-drop ordering](/assets/images/settings-checkout-recipient-fields-0c323e00b0376313e170f1eccd056f6d.png) Recipient fields control what information shoppers provide for each person they're sending to. You can toggle fields on or off, reorder them by dragging, and configure each field's behavior. For a walkthrough of setting up recipient fields for the first time, see the [checkout setup tutorial](https://docs.sendtomany.com/tutorials/storefront-setup/set-up-multi-recipient-checkout/.md). ### Default Fields[​](#default-fields "Direct link to Default Fields") These fields are always available (some are always required): * **Name fields:** Always required. Choose between a single full name field or separate first and last name fields. * **Company:** Optional. Toggle on to show a company name field. * **Address:** Always required. Uses Google address autocomplete for fast, accurate entry. * **Email:** Optional. Toggle on to collect recipient email addresses with validation. * **Phone:** Optional. Toggle on to collect recipient phone numbers with locale-based validation. ### Custom Fields[​](#custom-fields "Direct link to Custom Fields") Click **Add custom field** to create additional per-recipient fields beyond the defaults. Available types include text, number, date, dropdown, checkbox, and multi-select. For each field you configure the label, placeholder text, whether it's required, whether it supports fill-down, and where the value is stored on the order. For detailed instructions on adding and configuring recipient fields, see the [recipient fields section of the setup tutorial](https://docs.sendtomany.com/tutorials/storefront-setup/set-up-multi-recipient-checkout/.md). ### Language Support[​](#language-support "Direct link to Language Support") If you have added another language in the Text and Translations settings, a language dropdown appears (top right) to configure field labels for each language. To translate every string in one pass with a spreadsheet export, see the tutorial: [Translate the multi-recipient cart into your store's languages](https://docs.sendtomany.com/tutorials/advanced/translate-shopify-multi-recipient-cart/.md). ## Gift Message[​](#gift-message "Direct link to Gift Message") ![Gift message settings with checkboxes and storage options in Send To Many checkout](/assets/images/settings-checkout-gift-message-f8c51e8668ba2bb44f1bcd301d72d7f3.png) The Gift message tab controls whether shoppers can mark orders as gifts and include a personal message for each recipient. This is a dedicated settings section, separate from recipient fields. Two options are available (you can enable either or both): * **Show "This is a gift" checkbox:** Adds a checkbox to each recipient card. When checked, the order is flagged as a gift in Shopify. * **Show gift message field:** Adds a text field on each recipient card for a personal message. When the gift message field is enabled, you can also configure: * **Save gift message to:** Where the message is stored on the order. Options include Order notes, Order additional details, Line item attributes, and Order metafields. For most stores, **Order notes** is the simplest option since your fulfillment team can see the message directly on the Shopify order page. * **Max length:** Character limit for the message (e.g., 200 characters). * **Require gift message:** When enabled, shoppers must enter a message before proceeding. This only applies when "This is a gift" is checked. ## Shipping and Delivery Options[​](#shipping-and-delivery-options "Direct link to Shipping and Delivery Options") Send To Many calculates shipping separately for each recipient based on their location and the products they're receiving. You configure the shipping behavior in the **Shipping / delivery** tab and, for rate sources, on the **Shipping & delivery rates** page in your main app settings. ### Shipping Rate Sources[​](#shipping-rate-sources "Direct link to Shipping Rate Sources") Choose how shipping rates are determined for each recipient order: * **Calculate shipping / delivery rates:** Uses your configured rate source (Shopify shipping settings, Bird, Zapiet, or a custom integration) to calculate per-recipient rates. Shoppers see available rates and select one during checkout. * **Include local rates from Shopify:** An additional toggle available when using calculated rates. Enables local delivery and pickup rates alongside standard shipping. * **Free shipping:** Sets a $0 shipping line on all recipient orders. No rate selection shown to shoppers. * **Fixed shipping rate:** Applies a custom flat rate to each recipient order. ### Shipping Schedule[​](#shipping-schedule "Direct link to Shipping Schedule") ![Send To Many shipping date picker and delivery schedule settings for multi-recipient checkout](/assets/images/settings-checkout-shipping-date-picker-82d096b79761e508f5945dd9faac8eff.png) When you enable the shipping schedule, a date picker appears on the checkout form so shoppers can select delivery dates. **Date picker mode:** * **Apply to all recipients:** A single date picker appears once, and the selected date applies to every recipient. * **Apply to each recipient:** A date picker appears on each recipient card. Each recipient can have a different shipping date. **Date storage:** Configure where the selected shipping date is stored on each recipient order. Three options are available: * **Order additional details:** Stores the date in the order's additional details, visible in the Shopify admin order page. * **Note attributes:** Stores the date as a note attribute on the order. * **Metafield:** Stores the date in an order metafield. This is the best option if your ERP or fulfillment system reads order metafields, since metafields are accessible via the Shopify API and can be displayed in custom workflows. For all options, you set the **key** used to store the value (e.g., `shipping_date`). You can also toggle **Add the shipping date as a tag on each order**, which makes dates filterable in the Shopify order list. **Date formats:** Two separate format settings control how dates are handled: * **Date format:** The machine-readable format used to save the date on the order (e.g., `YYYY-MM-DD`). Choose a format that aligns with what your ERP, fulfillment system, or warehouse expects. This is the value stored in order data and available via the Shopify API. * **Date display format:** The human-readable format shown to shoppers on the checkout page (e.g., `MMM D, YYYY` for "Jun 15, 2026"). This can be different from the storage format to make the date picker more intuitive for your customers. **Date picker availability:** Control the earliest and latest selectable dates using day offsets from today. **Start day offset** sets how far out the earliest date is (e.g., `1` means tomorrow is the first option). **End day offset** sets the latest selectable date (e.g., `30` means shoppers can select up to 30 days out). Leave either blank for no restriction. ### Date Availability Rules[​](#date-availability-rules "Direct link to Date Availability Rules") ![Date availability rules showing disabled dates and days of the week for shipping schedule](/assets/images/settings-checkout-date-rules-95c03095a69b7cc69477767d69c5e480.png) Date availability rules let you block specific dates or recurring days from the date picker. Click **Add date availability rule** to create a rule: * **Disable specific dates:** Block individual dates like holidays or warehouse closures (e.g., December 25, January 1). * **Disable days of the week:** Block recurring days (e.g., every Saturday and Sunday) for businesses that don't ship on weekends. You can add as many rules as you need. Disabled dates are grayed out in the date picker and cannot be selected by shoppers. ## Order-Level Fields[​](#order-level-fields "Direct link to Order-Level Fields") ![Order-level dropdown and form fields appearing above the recipient list in multi-recipient checkout](/assets/images/settings-checkout-order-level-fields-c2de0571320c8aec0aa01a488edbea21.png) Dropdown and other order-level fields appear once at the top of the checkout, above the recipient list. These collect information that applies to the entire order rather than individual recipients. Order-level dropdown fields support configurable options and are stored on the parent order. This is useful for fields like "occasion" or "department" that apply to the whole send. ## Next Steps[​](#next-steps "Direct link to Next Steps") * [Additional settings](https://docs.sendtomany.com/checkout/configure-checkout-additional-settings/.md): Form fields, shipping rate filters, and advanced options * [Discounts](https://docs.sendtomany.com/checkout/discounts-in-multi-recipient-checkout/.md): Discount codes, volume discounts, and Shopify automatic discounts * [Setting up checkout](https://docs.sendtomany.com/tutorials/storefront-setup/set-up-multi-recipient-checkout/.md): Step-by-step setup guide * [CSS customization](https://docs.sendtomany.com/checkout/customize-checkout-with-css/.md): Match the checkout to your store's branding --- # Configure Multi-Recipient Checkout: Order & Shipping Settings Set up order processing, recipient fields, and shipping options for multi-recipient checkout on your Shopify store. Legacy checkout documentation This article covers the **legacy multi-recipient checkout**. If you installed Send To Many after May 2026, this does not apply to your store. See [Core settings](https://docs.sendtomany.com/checkout/configure-checkout-core-settings/.md) for the current version. The multi-recipient checkout settings page in Send To Many lets you control how orders are created, what information shoppers provide, and how shipping works. You'll find these settings under **Multi-recipient checkout** in your app settings, organized into tabs along the left side. This article covers the core settings most merchants configure first: order processing, recipient fields, and shipping and delivery options. For additional form fields, inquiries, upsell discounts, shipping rate filters, and advanced settings, see [Configuring Checkout: More Options](https://docs.sendtomany.com/checkout/configuring-checkout-more-options/.md). ## Order Processing[​](#order-processing "Direct link to Order Processing") ![Send To Many order processing settings for Shopify multi-recipient checkout configuration](/assets/images/checkout-config-order-processing-7e3d658dc7b8bb5383d61f86091de169.png) The order processing tab controls how recipient orders are created in Shopify after a shopper completes checkout. ### Order Revenue[​](#order-revenue "Direct link to Order Revenue") Choose how revenue appears on recipient (child) orders: * **Create orders marked as paid using the calculated amount:** Each recipient order shows the full calculated price, tax, and shipping. Use this when you need per-order revenue detail for accounting or tax reporting. * **Create orders marked as paid with $0 amounts:** Recipient orders are created at $0. All revenue is captured on the gifter (parent) order only. This avoids double-counting revenue in Shopify reports. Revenue reporting impact This is the most important configuration choice for checkout. If you use calculated amounts, revenue appears on both the aggregate order and each recipient order, which means Shopify reports will double-count unless you filter by order tags. If you use $0 amounts, revenue is only on the aggregate order, but you won't see per-recipient pricing detail on recipient orders. We recommend discussing this with your accounting team before going live. ### Shipping Notifications[​](#shipping-notifications "Direct link to Shipping Notifications") Control who receives Shopify's order confirmation and shipping notification emails: * **Suppress notifications:** No emails are sent. Orders use a blackhole email address () so Shopify's automatic notifications go nowhere. This is the right choice for most gifting use cases where you don't want recipients getting order confirmation emails. * **Send to recipients:** Shopify sends order and shipping notifications directly to the recipient's email address. * **Send to customer:** Notifications go to the gifter (the person who placed the order). Use "Send to customer" with caution If you choose to send notifications to the customer, the gifter may receive 3 or 4 shipping emails **for each recipient** in the order. For a 50-recipient send, that's up to 200 emails. **Send order confirmation email:** An additional toggle that controls whether Shopify's order confirmation email is sent (separate from delivery/shipping notifications). ### Inventory Handling[​](#inventory-handling "Direct link to Inventory Handling") * **Take from inventory:** Deducts inventory for each recipient order. Standard for most use cases. * **Don't take from inventory:** Skips inventory deduction on recipient orders. Use this if you're managing inventory manually or through another system. ### Save Recipient Addresses to Customer[​](#save-recipient-addresses-to-customer "Direct link to Save Recipient Addresses to Customer") When enabled, each recipient's shipping address is added to the gifter's Shopify customer record. This makes addresses available for future orders but can result in many addresses on a single customer profile. Disable this if your gifters regularly send to large recipient lists. ### Order Name Template[​](#order-name-template "Direct link to Order Name Template") Customize how recipient orders are named in Shopify. Leave blank to use Shopify's default sequential naming. You can include dynamic variables to make order names more descriptive. ### Recipient Order Tags and Aggregate Order Tags[​](#recipient-order-tags-and-aggregate-order-tags "Direct link to Recipient Order Tags and Aggregate Order Tags") Apply Shopify tags to recipient orders and the aggregate (gifter) order, respectively. Tags are useful for filtering orders in Shopify, triggering Shopify Flow automations, and routing orders to fulfillment services. Enter tags and press Enter to add them. Send To Many automatically adds tags to every order: "Send to Many #\[ID]" is added to all recipient and aggregate orders, and "Send to Many aggregate" is added to all aggregate orders. These permanent tags are displayed in the settings panel so you can see exactly what's applied. You can add your own custom tags alongside them. ### Additional Options[​](#additional-options "Direct link to Additional Options") * **Accept automatic discounts:** When enabled, Shopify's automatic discounts apply to checkout orders. * **Allow discount codes in checkout:** Lets shoppers enter discount codes during the multi-recipient checkout flow. * **Auto cancel parent order when paid:** Automatically cancels the gifter (parent) order after payment is collected and recipient orders are generated. Useful if you don't want the parent order appearing in your fulfillment queue. * **Show tax breakdown on aggregate tax line item:** Displays a detailed tax breakdown on the gifter order's aggregate tax line item instead of a single lump sum. ## Recipient Fields[​](#recipient-fields "Direct link to Recipient Fields") ![Send To Many recipient fields configuration for Shopify multi-recipient checkout form](/assets/images/checkout-config-recipient-fields-556c6f430814e730df3eb26c6704a13c.png) Configure which fields are available when shoppers add recipients. You can reorder fields by dragging, toggle them on or off, and edit each field's settings. ### Default Fields[​](#default-fields "Direct link to Default Fields") * **Name Fields:** Always required. You can choose whether to use a single name field or split the field into First and Last Name fields. * **Company:** Optional. Toggle on to show a company name field. * **Address:** Always required. Uses Google address autocomplete for fast, accurate entry. * **Email:** Toggle on to collect recipient email addresses. We'll apply basic email validation to this field. * **Phone:** Toggle on to collect recipient phone numbers. We'll validate based on your store's locale settings. ### Shipping Date Picker[​](#shipping-date-picker "Direct link to Shipping Date Picker") Depending on your app wide Shipping settings and the Shipping / delivery selections in this checkout section, you may also see a shipping date field in the recipient fields. Options will include: * **Label:** The field label (e.g., "Shipping date"). * **Required:** Whether a shipping date must be selected. * **Can fill down:** Lets shoppers set one date and apply it to all recipients. For full shipping date configuration including date ranges, blackout dates, and format settings, see [Shipping and delivery options](#shipping-and-delivery-options) below. ### Custom Fields[​](#custom-fields "Direct link to Custom Fields") Click **Add custom field** to create additional per-recipient fields beyond the defaults. Options include text, number, date, dropdown, checkbox, multi-select, etc fields. For instance, a Gift Message field would use a text field formatted as follows: ![Editing a custom recipient text field in Send To Many multi-recipient checkout, showing label, placeholder, field type, required, and fill down options](/assets/images/checkout-recipient-field-options-ff725c5325f2a1fa07779a92e9271b24.png) * **Label:** The field label shown to shoppers (e.g., "Gift message"). * **Placeholder:** Placeholder text inside the input. * **Multiline:** Enable for multi-line text input (recommended for gift messages). * **Show character count:** Display a character counter as shoppers type. * **Max character limit:** Set a maximum character count. * **Field type:** Where the message is stored on the order: "Order additional detail" or "Note attribute." * **Key:** The key used to store the value (e.g., `_gift_message`). Keys starting with an underscore are hidden from the customer-facing order status page. * **Required:** When enabled, shoppers must fill in this field for every recipient before they can proceed to checkout. Use this for fields that are essential to your workflow, like a gift message that gets printed on a card or a delivery date that your warehouse needs for scheduling. * **Can fill down:** When enabled, shoppers can enter a value on the first recipient and apply it to all remaining recipients with one click. This is a major time-saver for fields where the value is often the same across recipients, like a gift message or a requested shipping date. The shopper can still edit individual values after filling down. ### Language Support[​](#language-support "Direct link to Language Support") If you have added another language in the Text and Translations settings, you'll see a the language dropdown (top right) to configure field labels for recipient fields. ## Shipping and Delivery Options[​](#shipping-and-delivery-options "Direct link to Shipping and Delivery Options") Send To Many calculates shipping separately for each recipient based on their location and the products they're receiving. You configure the shipping behavior in the **Shipping / delivery** tab in your multi-recipient checkout settings and, for rate sources, on the **Shipping & delivery rates** page in your main app settings. ### Shipping and Delivery Rate Sources[​](#shipping-and-delivery-rate-sources "Direct link to Shipping and Delivery Rate Sources") ![Shipping and delivery rate source settings for Send To Many multi-recipient checkout in Shopify](/assets/images/checkout-config-shipping-rates-9fa7cc8536a6cdcdc9e5f6078af23da3.png) Choose how shipping rates are determined for each recipient order: * **Calculate shipping / delivery rates:** Uses your configured rate source (Shopify shipping settings, Bird, Zapiet, or a custom integration) to calculate per-recipient rates. Shoppers see available rates and select one during checkout. This is the most common option. * **Include local rates from Shopify:** An additional toggle available when using calculated rates. Enables local delivery and pickup rates from Shopify alongside standard shipping rates. * **Free shipping:** Sets a $0 shipping line on all recipient orders. No rate selection shown to shoppers. * **Fixed shipping rate:** Applies a custom flat rate to each recipient order. You set the rate amount when selecting this option. ### Shipping Schedule[​](#shipping-schedule "Direct link to Shipping Schedule") ![Shipping date and delivery options for Send To Many multi-recipient bulk orders in Shopify](/assets/images/checkout-config-shipping-date-options-7f9f161bbc337754340a724f68c4feaa.png) When you enable the shipping schedule, a date picker appears on the checkout form so shoppers can select delivery dates. **Date Picker Mode** * **Apply to all recipients:** A single date picker appears once, and the selected date applies to every recipient in the order. * **Apply to each recipient:** A date picker appears on each recipient's entry form. Each recipient can have a different shipping date. **Date Storage** Configure where the selected shipping date is stored on each order: * **Place shipping date in:** Choose "Order additional details" or "Note attributes" as the storage location on the Shopify order. * **Key:** The key used to store the value (e.g., `shipping_date`). This is what you'll use to find the date in Shopify order data. * **Also add the shipping date in a tag on each order:** Optionally adds the selected date as an order tag for easy filtering in Shopify. **Date Formats** * **Date format:** The format used to save the date on the order (e.g., `YYYY-MM-DD`). This is the machine-readable format stored in order data. * **Date display format:** The format shown to shoppers in the date picker (e.g., `YYYY-MM-DD`). You can make this more human-readable if needed. **Date Picker Availability** Control which dates are available for selection: * **Start day offset from current date:** The earliest selectable date, expressed as days from today. For example, `1` means shoppers can select starting from tomorrow. Leave blank for no start restriction. * **End day offset from current date:** The latest selectable date, expressed as days from today. For example, `30` means shoppers can select up to 30 days out. Leave blank for no end restriction. **Date Availability Rules** Add rules to disable specific dates or patterns: * **Disable specific dates:** Block individual dates (e.g., `Jan 1, 2026` for a holiday). Click **Add date availability rule** to add one. * **Disable days of the week:** Block recurring days (e.g., every Sunday). Useful for businesses that don't ship on weekends. You can add multiple rules. ## Next Steps[​](#next-steps "Direct link to Next Steps") * [Configuring Checkout: More Options](https://docs.sendtomany.com/checkout/configuring-checkout-more-options/.md): Additional form fields, inquiries, upsell discounts, and advanced settings * [Adding multi-recipient checkout to your Shopify theme](https://docs.sendtomany.com/checkout/setup-multi-recipient-checkout/.md): Install the checkout on your storefront * [Customizing checkout appearance with CSS](https://docs.sendtomany.com/checkout/customize-checkout-css/.md): Match the checkout to your store's branding --- # Multi-Recipient Checkout: Form Fields, Upsells & Advanced Settings Add custom form fields, inquiry forms, tiered upsell discounts, shipping rate filters, and advanced settings to your Shopify multi-recipient checkout. Legacy checkout documentation This article covers the **legacy multi-recipient checkout**. If you installed Send To Many after May 2026, this does not apply to your store. See [Additional settings](https://docs.sendtomany.com/checkout/configure-checkout-additional-settings/.md) for the current version. Beyond the core order processing, recipient fields, and shipping settings covered in [Configuring Checkout: Basics](https://docs.sendtomany.com/checkout/configuring-checkout-basics/.md), the multi-recipient checkout settings page includes several more tabs for collecting additional data, offering discounts, filtering shipping rates, and handling advanced use cases. ## Additional Form Fields[​](#additional-form-fields "Direct link to Additional Form Fields") ![Send To Many additional form fields settings for Shopify multi-recipient checkout customization](/assets/images/checkout-config-additional-form-fields-4b0440fa175309f28d4d0fae6fc7a693.png) Additional form fields collect information from the gifter (the person placing the order), not per-recipient data. These fields appear once at the top of the checkout form. Click **Add new field** and choose from: * **Email:** Email address input with validation * **Phone:** Phone number input * **Single line text:** Short text input * **Multi-line text:** Longer text area * **Number:** Numeric input * **Date:** Date picker * **Dropdown:** Select from predefined options * **Checkbox:** Single checkbox toggle * **Multiple choice:** Select multiple options from a list * **Radio buttons:** Select one option from a list Each field type has its own configuration options (label, placeholder, required, key, etc.). The data collected is stored on the gifter order. ## Inquiries[​](#inquiries "Direct link to Inquiries") ![Send To Many inquiry form settings embedded in Shopify multi-recipient checkout](/assets/images/checkout-config-inquiries-fe63d8941c58e048fd76a82850f909c3.png) The inquiries toggle controls whether shoppers can submit corporate gifting inquiries instead of checking out directly. * **Enable inquiries:** When enabled, an inquiry option appears on the checkout page. * **Inquiry page URL:** Set the relative URL of your inquiry form page (e.g., `/pages/corporate-gifting-demo-page`). Preferably use a relative path like `/pages/inquiry-form`. For full details on setting up and managing inquiries, see the [Inquiry Form](https://docs.sendtomany.com/inquiry-form/how-corporate-gifting-inquiry-form-works/.md) section of the docs. ## Upsell Discounts[​](#upsell-discounts "Direct link to Upsell Discounts") Encourage larger orders by offering automatic discounts that kick in as shoppers add recipients or increase their order value. Discounts update in real-time during checkout, showing shoppers exactly what they've unlocked and how close they are to the next tier. ### Discount Types[​](#discount-types "Direct link to Discount Types") * **Percentage off:** Discount a percentage of the total order value (e.g., 10% off when you send to 5+ people). * **Dollar amount off:** Subtract a fixed amount from the total (e.g., $10 off). * **Free shipping:** Waive shipping fees for the entire order. ### How Discounts Trigger[​](#how-discounts-trigger "Direct link to How Discounts Trigger") ![Send To Many tiered upsell discount settings for Shopify multi-recipient checkout](/assets/images/checkout-config-upsell-discounts-cd4075cebc20047e17c8d6a6958cce05.png) Each discount is triggered by one of two conditions: * **Recipient count:** The discount applies when the shopper adds a certain number of recipients (e.g., 5 or more). * **Order value:** The discount applies when the order total reaches a dollar threshold (e.g., $100 or more). You set the trigger type and threshold when creating each discount tier. ### Multiple Discount Tiers[​](#multiple-discount-tiers "Direct link to Multiple Discount Tiers") Stack tiers to reward progressively larger orders. For example: * 5+ recipients: 10% off * 10+ recipients: 15% off * 20+ recipients: 25% off Click **+ Add tier** to add additional discount levels. Each tier has its own threshold and discount amount. ### Upsell Messages[​](#upsell-messages "Direct link to Upsell Messages") Control when and how shoppers see discount information: * **Show upsell message:** Choose when the upsell message is visible: **Always** (from the start of checkout), **After first tier is reached** (only after the shopper qualifies for at least one discount), or **Never**. * **Upsell message displayed to shoppers:** Customize the message text. Use `{remaining}` as a placeholder for the number of recipients still needed to reach the next tier (e.g., "Add {remaining} more recipients to qualify for 10% off!"). The message updates dynamically as shoppers add or remove recipients, creating a natural incentive to keep adding. ### Setting Up Upsell Discounts[​](#setting-up-upsell-discounts "Direct link to Setting Up Upsell Discounts") 1. Go to **Multi-recipient checkout** in your app settings. 2. Click the **Upsell discounts** tab. 3. Set the **Discount trigger** (Order value or Recipient count). 4. Set the **Type** (Percentage, Dollar amount, or Free shipping). 5. Configure **Show upsell message** and your message text. 6. Under **Discount tiers**, set the threshold and discount amount for your first tier. 7. Click **+ Add tier** to add more levels. 8. Save your changes. Discounts are live immediately. Shoppers will see them on their next checkout. Start with an achievable threshold Most shoppers already send to 2-3 people. A 5-recipient threshold is reachable and meaningful. Escalate the reward at each tier so it feels like a significant jump (e.g., 10%, 15%, 25%). ## Shipping Rate Filters[​](#shipping-rate-filters "Direct link to Shipping Rate Filters") ![Send To Many shipping rate filter settings for Shopify multi-recipient checkout](/assets/images/checkout-config-shipping-rate-filters-c6e4a5601ee2f8d362406c20797b97d6.png) Shipping rate filters let you control which shipping rates are shown to shoppers during checkout. This is useful when your Shopify shipping settings include rates you don't want available for multi-recipient orders (e.g., local pickup, special handling options). Click **Add shipping rate filter** to create a filter: * **Filter shipping rate on:** Choose whether to filter by **Title** (the rate name) or **Price** (the rate amount). * **Operator:** For title filters: Equals, Contains, Starts with, Ends with. For price filters: numeric comparisons. * **Title / Price value:** The value to match against. * **Filter applies when:** Choose when this filter is active: Always, or conditionally based on order attributes. Filtered rates are hidden from shoppers. All other available rates are shown. ## Advanced Settings[​](#advanced-settings "Direct link to Advanced Settings") ![Send To Many advanced checkout settings for Shopify multi-recipient order configuration](/assets/images/checkout-config-advanced-d1eb599b6a1eee999680700e19603281.png) These settings are for non-standard use cases. Contact our support team if you need access to these options. * **Disable cart mode product customization:** When enabled, shoppers can't customize products for individual recipients in the multi-recipient checkout. The products in the cart are what each recipient will receive. * **Persist cart line item properties:** When enabled, cart line item properties are passed through to the parent and child order line items. Useful for stores that use line item properties for customization or metadata. * **Use payment terms at checkout for B2B customers:** When enabled, B2B payment terms (Net 15, Net 30, etc.) are applied at checkout for B2B customers. Payment terms are defined on the company location in Shopify. ## Next Steps[​](#next-steps "Direct link to Next Steps") * [Configuring Checkout: Basics](https://docs.sendtomany.com/checkout/configuring-checkout-basics/.md): Order processing, recipient fields, and shipping options * [Adding multi-recipient checkout to your Shopify theme](https://docs.sendtomany.com/checkout/setup-multi-recipient-checkout/.md): Install the checkout on your storefront * [Customizing checkout appearance with CSS](https://docs.sendtomany.com/checkout/customize-checkout-css/.md): Match the checkout to your store's branding --- # Customize Multi-Recipient Checkout Functionality with Custom Scripts Extend Send To Many's multi-recipient checkout with custom Liquid, the JavaScript API, checkout hooks, and DOM events. A developer reference for the Custom script setting. Beta feature This feature is in beta. The behavior described here works today, but field names, timing, and defaults may change based on beta feedback. Security note The Custom script field is a raw ` ``` ## 2. Window Globals: What's Available on the Page[​](#2-window-globals-whats-available-on-the-page "Direct link to 2. Window Globals: What's Available on the Page") The checkout sets several objects on `window` during bootstrap. All are available after the `s2m:ready` event fires. ### window\.s2mMultiCheckout[​](#windows2mmulticheckout "Direct link to window.s2mMultiCheckout") The initial configuration object, set by Liquid before the JS bundle loads. Contains: * **customer**: `id`, `email`, `first_name`, `last_name`, `phone`, `b2b` (boolean), `has_account`, company info, saved addresses * **products**: array of product objects, each with `id`, `handle`, `title`, `type`, `tags`, `collections`, `vendor`, `category`, `available`, `variants` (with inventory data), `featured_image`, `price_string`, `customFields` * **cartItems, cartNote, cartAttributes**: populated in cart mode only, meaning when the block is not scoped to a collection. `cartItems` holds the current Shopify cart contents; `cartNote` and `cartAttributes` mirror `cart.note` and `cart.attributes`. All three are undefined on a collection-scoped block, where `isCartMode` is false * **recommendedProducts**: recommended products array * **currency**: shop currency code * **countryCode**: shop country * **pageData**: `path`, `origin`, `page_type`, `template`, `page_title`, `url`, `handle`, `locale`, `stmMultiCartVersion` * **metaobject**: the full checkout settings meta object * **shopPrimaryLocale**, **isCartMode**, **storefrontLoginUrl**, **allProductsCollectionUrl** ### window\.s2mCheckoutStore[​](#windows2mcheckoutstore "Direct link to window.s2mCheckoutStore") Read-only access to the checkout's reactive state store, through `getState()` and `subscribe(listener)`. `subscribe` fires on every internal update with the full state snapshot and returns an unsubscribe function. Useful for advanced integrations that need to react to internal state transitions. A `setState` method also exists, but avoid using it for discounts or session data: it does not call the app proxy routes and can desync the server session. ### window\.s2mCheckoutApi[​](#windows2mcheckoutapi "Direct link to window.s2mCheckoutApi") The primary merchant API. Five methods for interacting with the checkout programmatically. See Section 3. ### window\.s2mCheckoutHooks[​](#windows2mcheckouthooks "Direct link to window.s2mCheckoutHooks") The hook registration system. Currently exposes `onBeforeCheckout`. See Section 4. ## 3. The Checkout API (window\.s2mCheckoutApi)[​](#3-the-checkout-api-windows2mcheckoutapi "Direct link to 3. The Checkout API (window.s2mCheckoutApi)") Five methods for reading state and triggering actions: ### getAggregatedTotals()[​](#getaggregatedtotals "Direct link to getAggregatedTotals()") Returns the current aggregated order totals object: * **subtotal**: line item subtotal (string, formatted number) * **tax**: total tax * **shipping**: shipping cost (after discounts) * **shippingOriginal**: shipping cost before discounts * **discount**: total discount amount * **total**: grand total * **taxesIncluded**: boolean, whether tax is included in prices * **shippingDiscounts**: array of `{ title, amount }` badges, one per shipping-level discount, aggregated across recipients * **orderDiscounts**: array of `{ title, amount }` badges, one per order-level platform discount or upsell discount ### applyDiscountCode(code)[​](#applydiscountcodecode "Direct link to applyDiscountCode(code)") Applies a discount code and triggers recalculation for all recipients. Returns a promise. ``` await window.s2mCheckoutApi.applyDiscountCode('GIFT20'); ``` ### removeDiscountCode(code?)[​](#removediscountcodecode "Direct link to removeDiscountCode(code?)") Removes a specific discount code, or all codes if no argument is passed. Triggers recalculation. ``` // Remove a specific code await window.s2mCheckoutApi.removeDiscountCode('GIFT20'); // Remove all codes await window.s2mCheckoutApi.removeDiscountCode(); ``` ### validate()[​](#validate "Direct link to validate()") Runs the full checkout validation without submitting. Useful for pre-flight checks in custom flows. Does not mutate the error state displayed in the UI. Returns a `ValidationResult` synchronously. Unlike the discount methods, it is not a promise. ``` var result = window.s2mCheckoutApi.validate(); ``` ### getRecipientLineItems(recipient)[​](#getrecipientlineitemsrecipient "Direct link to getRecipientLineItems(recipient)") Resolves one recipient's product lines against the current catalog. Pass a recipient object, for example `window.s2mCheckoutStore.getState().recipients[0]`. Returns an array of objects with `productId`, `variantId`, `quantity`, `sku`, `name`, `productTitle` and `variantTitle`. Omits zero-quantity lines, lines without a `variantId`, and lines with no matching catalog product. Useful for enforcing per-recipient SKU or quantity rules inside `onBeforeCheckout`. ``` var lines = window.s2mCheckoutApi.getRecipientLineItems(recipient); ``` ## 4. Checkout Hooks (window\.s2mCheckoutHooks)[​](#4-checkout-hooks-windows2mcheckouthooks "Direct link to 4. Checkout Hooks (window.s2mCheckoutHooks)") ### onBeforeCheckout(handler)[​](#onbeforecheckouthandler "Direct link to onBeforeCheckout(handler)") Register a function that runs **after** built-in validation passes and **before** the checkout is submitted. This is your gate. Return `{ ok: false, message: '...' }` to block checkout and show an error message in the global error banner. ``` ``` **Key behaviors:** * Multiple handlers can be registered. They run in registration order * If any handler returns `ok: false`, the chain stops and checkout is blocked * The `message` string is displayed in the checkout's global error banner * `onBeforeCheckout` returns an unsubscribe function. Call it to remove the handler ``` var unsubscribe = window.s2mCheckoutHooks.onBeforeCheckout(myHandler); // Later, to remove: unsubscribe(); ``` ## 5. DOM Events[​](#5-dom-events "Direct link to 5. DOM Events") Two custom events are dispatched on the `[data-s2m-mc-root]` element. Both bubble. ### s2m:ready[​](#s2m "Direct link to s2m") Fired once after the checkout initializes and the UI mounts. This is the safe point to start interacting with the API and DOM. ``` document.addEventListener('s2m:ready', function(e) { console.log('Checkout ready. Session:', e.detail.checkoutSessionUuid); // Safe to use window.s2mCheckoutApi, window.s2mCheckoutHooks, etc. }); ``` **Detail:** `{ checkoutSessionUuid: string }` ### s2m:totals-updated[​](#s2m-1 "Direct link to s2m-1") Fired whenever the aggregated order totals change (recipient added/removed, product changed, discount applied, etc.). ``` document.addEventListener('s2m:totals-updated', function(e) { var totals = e.detail; console.log('New total:', totals.total); console.log('Discount:', totals.discount); // Update custom UI, run analytics, etc. }); ``` **Detail:** the full `AggregatedOrderTotals` object. Same shape as `getAggregatedTotals()`, including `orderDiscounts`. The event is deduplicated, so it fires only when one of the nine totals fields actually changes. ## 6. Stable DOM Selectors[​](#6-stable-dom-selectors "Direct link to 6. Stable DOM Selectors") These `data-*` attributes are stable across updates and safe to target in CSS or JS: | Selector | Element | | --------------------------------------- | ------------------------------------------------- | | `[data-s2m-mc-root]` | Block root. Attach CSS classes, listen for events | | `[data-s2m-mc-discount-code]` | Discount code section wrapper | | `[data-s2m-mc-discount-code-input]` | Discount code text input | | `[data-s2m-mc-discount-code-input-row]` | Input + apply button row | | `[data-s2m-mc-order-summary-subtotal]` | Subtotal amount display | | `button[data-s2m-checkout-submit]` | Checkout / submit button | | `[data-s2m-keep-shopping]` | Keep shopping / continue shopping links | Re `[data-s2m-keep-shopping]`: the keep shopping / continue shopping links, present on the header link and both empty-cart buttons. The default href is Shopify's all-products collection. You can override it without waiting for `s2m:ready`, because these links are in the initial Liquid-rendered HTML. warning **Only target selectors listed above.** Internal class names and DOM structure may change between versions. ## 7. CSS Customization[​](#7-css-customization "Direct link to 7. CSS Customization") The checkout exposes many CSS custom properties on `.s2m-mc-root` covering layout, colors, typography, cards, forms, buttons, modals, and product cards. Most are configurable through the theme editor block settings; a handful are set in the stylesheet only and can be changed just by overriding the variable in CSS. One of those is `--s2m-mc-product-image-object-fit`, which controls how product images fill their frame (the default is `contain`). For the full list of variables and both customization methods, see [Customize Multi-Recipient Checkout with CSS](https://docs.sendtomany.com/checkout/customize-checkout-with-css/.md). For targeted overrides beyond what the settings provide, use the stable selectors above: ``` ``` Custom CSS set through the Custom Liquid setting is scoped to the block section, making per-page customization straightforward when using [multiple checkout configurations](https://docs.sendtomany.com/checkout/multiple-checkout-configurations/.md) on different pages. ## 8. Practical Examples[​](#8-practical-examples "Direct link to 8. Practical Examples") ### Minimum order enforcement[​](#minimum-order-enforcement "Direct link to Minimum order enforcement") ``` ``` ### Live total display in a custom element[​](#live-total-display-in-a-custom-element "Direct link to Live total display in a custom element") ```
``` ### Auto-apply a discount for B2B customers[​](#auto-apply-a-discount-for-b2b-customers "Direct link to Auto-apply a discount for B2B customers") ``` ``` ### Analytics tracking on checkout[​](#analytics-tracking-on-checkout "Direct link to Analytics tracking on checkout") ``` ``` ### Conditional content based on customer tags[​](#conditional-content-based-on-customer-tags "Direct link to Conditional content based on customer tags") ``` {% if customer.tags contains 'vip' %}
VIP customers get free shipping on multi-recipient orders!
{% endif %} ``` ## 9. Tips & Gotchas[​](#9-tips--gotchas "Direct link to 9. Tips & Gotchas") * **Always wait for `s2m:ready`** before accessing `window.s2mCheckoutApi`, `window.s2mCheckoutHooks`, or `window.s2mCheckoutStore`. They are not defined until bootstrap completes. * **`window.s2mMultiCheckout` is available earlier:** it's set by Liquid before the JS bundle loads, so you can read customer/product data in synchronous script blocks if needed. * **Events bubble:** you can listen on `document` instead of querying for `[data-s2m-mc-root]`. * **Don't rely on internal class names.** Only the `data-s2m-*` selectors listed in Section 6 are stable across versions. * **The Custom Liquid setting has a 50 KB limit.** For large scripts, host them externally and load via a `