This is what a creator sees when they open your gift link (/gift/your-campaign, or the per-creator link a merchant on the Seed+ plan can send instead). It has no checkout, no cart, no coupon code. The creator picks a product and types their address, and submitting creates a real $0 draft order in your Shopify admin. See zero-dollar draft orders for how that works under the hood.
Language
A creator doesn't pick their own language on the form, there's no switcher anywhere on screen. The language they see is decided entirely by the link they opened.
- 1Which language renders
- Precedence, highest to lowest: an explicit
?lang=es(orfr) on the URL always wins, this is what a link copied from the campaign editor's Preview & share by language tool carries; otherwise the campaign's own Language override setting if you've set one; otherwise the visitor's own browser language on first visit, remembered for their next visit; otherwise English. Every screen of the form honors it, including the password gate and the unavailable/error cards, and it applies without a page reload.What does and doesn't translate: only Seed's own interface strings (step names, field labels, buttons, error text). It never touches anything you wrote yourself in the campaign editor, the campaign name and description, product and variant names (these come from Shopify), custom question labels, your terms & conditions text, or any per-key copy override you set in
form_config.copy. If you write your campaign in French, an English-speaking creator still sees your French campaign name with English Seed labels around it, unless you also set an English copy override.Default: Store default, or the visitor's browser language
Password gate
If your campaign has a password set, nothing else on this page renders until the creator enters it correctly. No product names, no images, nothing. This is the only screen where product data never reaches the browser at all.
- 1Heading
- Fixed heading; not campaign-specific.
Default: "This gift form is password-protected"
- 2Body text
- Tells the creator who to ask (you, the brand), not Seed.
Default: "Ask the brand for the password to continue."
- 3Password field
- A single password input. Continue is disabled until something is typed.
Default: empty
- 4Continue button
- Checks the password against the campaign's saved hash. On success, the creator moves straight to the welcome screen with no further prompt for the rest of their session (the unlock is remembered in their browser). On failure, an inline error reads Incorrect password.
Default: "Continue" ("Checking…" while submitting)
Welcome screen
The first screen a creator sees once they're past any password gate. Its look changes with your brand's theme (logo, colors, font, an optional hero image), but the structure is the same.
- 1Hero image or product collage
- If your campaign has a hero image set, it fills the top of the screen. Otherwise Seed shows a collage of up to 8 of your products' featured images instead, so the creator sees something before they scroll.
Default: a 4-across grid of up to 8 product thumbnails
- 2Brand logo
- Shown above the heading unless the theme hides it (some brand themes render their own header instead).
Default: your uploaded logo, or a 🎁 icon if none
- 3Heading
- Your campaign's
namefield, verbatim.Default: your campaign's name, or "You've been gifted!" if it has none
- 4Welcome messageStarter+
- An optional line of custom text you can set under your brand settings. Hidden unless set.
Default: hidden
- 5Shipping and free-gift lines
- Two reassurance lines with icons (📦 and 🆓 by default, or a custom emoji if you set custom text). If you've set "ships in X days" in your brand settings, the shipping line reads "Your gift will be shipped within {days}." instead. Both lines are hidden entirely if your brand settings turn off reassurance text.
Default: "Your gift will be shipped once you've submitted your selection." / "Completely free, no payment required."
- 6Product preview
- Skipped when a hero image or the fallback collage above already shows products, so they're never shown twice.
Default: up to 8 thumbnails, only when there's no hero image
- 7Choose My Products button
- Advances to the product-picker step. Always full-width, in your brand's primary color.
Default: "Choose My Products →"
Step 1 · Choose products
A progress bar and a "Step 1 of 3" counter sit above every step from here on. The step's own heading reads Choose Products.
- 1Item limit line
- Reflects your campaign's Items per order setting. Reads "Choose up to 1 item" when the limit is 1, "Choose up to N items" for any other number, or "Choose up to any number of items" when there's no cap. Once the creator has picked something, a count like "(2 selected)" appends in your accent color.
Default: "Choose up to any number of items." (or a specific count)
- 2Gift value lineStarter+
- Only appears if you've set a maximum gift value on the campaign's Advanced tab. Shows a running total ("Gift value: $24.00 of $30.00 limit") that turns red and adds ", remove an item to continue" once the creator goes over.
Default: hidden unless a value cap is set
- 3Product card
- Each card shows the product image, title, a variant dropdown (only if the product has more than one variant), and an Add to my gift button. A product with only one variant skips the dropdown entirely. Cards can render one per row (default) or two-up, and newest-first or in your saved order, depending on your campaign's Form tab settings.
Default: one per product, in the order set on the campaign
- 4Variant dropdown
- Lists every variant you allowed for this campaign (or every variant if you didn't restrict any). An out-of-stock variant is greyed out in the list with "(Out of stock)" after its name and can't be selected.
Default: the product's first in-stock variant
- 5Sold out badge
- A black "Sold out" pill appears over the product image when every variant of that product is out of stock. The whole card dims and its button reads "Sold out" instead of "Add to my gift".
Default: hidden
- 6Quantity stepperStarter+
- Only shown once a product is selected, and only if your campaign turns on per-item quantities. − and + buttons; bounded by both your total item limit and any per-line "quantity up to" cap set on the Advanced tab.
Default: hidden
- 7Add / Selected (Remove button
- Turns into a filled "✓ Selected. Remove" button once tapped. Disabled (and relabelled "Max N item(s) reached") once the creator hits your item limit; relabelled "Sold out" or "{variant}is out of stock" when the current selection can't be added.
Default: "Add to my gift" → "✓ Selected), Remove"
- 8Store link / size charts / shipping notesStarter+
- An optional row above the Continue button. Shows a "Visit store →" link, a collapsible size chart image, and/or a country-specific shipping note. Each only when you've set it on the campaign's Advanced tab.
Default: hidden
- 9Floating cartStarter+
- A small "Your cart · N items" card fixed to the bottom-right, listing what's selected with a × to remove each line without scrolling back up.
Default: hidden until the creator picks something
- 10Continue button
- Also disabled if the creator is over your gift-value limit, or under a "minimum products per submission" you've set.
Default: "Continue →", disabled with nothing selected
Step 2 · Your info
Heading reads Your Info. Every field below can be shown/hidden and required/optional per campaign from the Form fields card in the campaign editor. The defaults shown are what a campaign gets if you've never touched that card.
- 1First name / Last name
- Both always shown and required. Shopify can't create a draft order without a name.
Default: shown, required
- 2Email
- Always required. Seed checks a handful of common typo domains (like
gmail.con) as the creator types and offers a one-tap "Did you mean {corrected}?" fix, it never blocks submission, just suggests.Default: shown, required
- 3Instagram Handle
- A single "@" input. Can be relabelled (e.g. to match a different platform), hidden entirely, or made required, all from the Form fields card. Moved to the end of the form (after your custom questions) if you turn on "Social fields last".
Default: shown, optional
- 4TikTok Handle / YouTube ChannelStarter+
- Off by default. Turn either on from the Form fields card to collect it alongside Instagram.
Default: hidden
- 5Phone
- Becomes required automatically for a creator who picks parcel-locker delivery (see below), the pickup code is sent by SMS, so a locker gift can't ship without it.
Default: shown, optional
- 6Country
- Hidden entirely (no dropdown at all) when your campaign only ships to one country, there's nothing to choose. Add more countries from the campaign's Form tab to show the select.
Default: your own shop's country; a select if you allow more than one
- 7Parcel locker pickerStarter+
- For a handful of countries with live locker networks (e.g. the Baltics), Seed offers a searchable locker picker instead of a typed address by default, a creator can always tap "Ship to a street address instead" to switch back. If the carrier directory can't be reached, Seed falls back to the street-address form automatically.
Default: a street address form
- 8Street address / Apt / City / State / ZIP
- Standard address fields. State/Province, ZIP, and Apt/Suite can each be individually shown/hidden and required/optional from the Form fields card. ZIP can be restricted to digits only.
Default: shown; address1/city required, the rest optional
- 9Custom questionsStarter+
- Any extra questions you've added on the campaign (e.g. "Pet name", "T-shirt size") render here as plain text inputs. Their answers are appended to the draft order's note in Shopify, not stored as separate columns.
Default: none
- 10Review Order button
- Also disabled while a parcel-locker creator hasn't picked a locker, or while a required custom question is blank.
Default: "Review Order →", disabled until every required field is filled
Step 3 · Review
Heading reads Review. The creator sees a read-only summary before submitting.
- 1Products summary
- An Edit link jumps back to step 1 without losing anything already filled in on step 2.
Default: every selected item and variant
- 2Shipping summary
- Also has its own Edit link, back to step 2.
Default: the name, address, phone, email, and Instagram handle entered on step 2
- 3Terms summary bannerStarter+
- A short one-line summary of what the creator is agreeing to, shown in an orange callout above the full terms, only appears if both your campaign has terms and you've set a summary line.
Default: hidden
- 4Terms & conditions
- A collapsible block (tap "View" to expand) showing your full terms text, with a required checkbox reading "I have read and agree to the terms & conditions." Submission is blocked until it's checked. Both in the browser and again on the server, so a bypassed browser check can't skip it.
Default: hidden unless the campaign has terms text
- 5Second consent checkboxStarter+
- An optional extra checkbox (e.g. "OK to use my content in paid ads") you can turn on per campaign. Can be required or optional.
Default: hidden
- 6Marketing opt-in checkboxStarter+
- An optional checkbox that, when checked, sets the creator's Shopify email-marketing consent on submit. Best-effort, never blocks the order if it fails.
Default: hidden
- 7Submit button
- Can be relabelled per campaign. Disabled while required terms/consent boxes are unchecked, while submitting, or if the gift value is over your limit.
Default: "Confirm & Submit" ("Placing your order…" while submitting)
Errors on submit
If Confirm & Submit fails, an inline red banner appears above the button with a message translated into the creator's chosen language where Seed has a translation. See creator says the form errored for what each message means and how to fix it.
Unavailable link
If the link itself can't be used at all. The campaign is paused, deleted, or has hit its order cap. The creator never reaches the welcome screen. They see a centered card instead.
- 1Heading
- Overridable per shop under your out-of-orders brand copy.
Default: "This gift link is no longer available"
- 2Body text
- Also overridable per shop.
Default: "It may have reached its order limit or been deactivated."