Custom quote to draft order
A made-to-measure request sent from your site, with sizes, material and drawings, becomes a draft order with a custom line for the customer: you set the price and send the invoice from Shopify.
How it runs.
A Webflow form writes a metaobject; Shopify Flow takes it from there.
- TriggerMetaobject entry created
- Action 1
Create a draft order for the customer with one custom line, the title of the request at 0.00, the tag
custom-quoteand a note with the sizes, the material, the budget, the notes and the drawing links (“Send Admin API request”: draftOrderCreate) - Action 2
Tell the team on Slack, with the sizes, the material and a link to the draft order (“Send Slack message”, Slack app)
- Action 3
Email the customer that the request arrived, with a link to the page of their request (the file sends it with a “Send HTTP request” to Resend)
- Action 4
Mark the request as
received
What you need, and how to install it.
- Shopify Flow, free in Shopify
- Plan: Server
- Add-on: Metaobject creator
- Element:
metaobject-creatorwithdata-type="custom_quote"andcustomer-field="customer", for logged-in customers: title, sizes with their unit, material, budget, notes and afile-inputfor the drawings - Element: Optional: a page with
smootify-metaobjectanddata-type="custom_quote"data-handle-param="q", which the email link opens to show the request and its status - Metaobject definition
custom_quote, private - Storefront access on the definition only if you build the request page: without it, keep the definition private
- The Slack app in Shopify, connected to your workspace, for the “Send Slack message” step
Settings › Custom data › Metaobjects › Custom quote
custom_quotetitleSingle line textwidthDimensionheightDimensiondepthDimensionmaterialSingle line textbudgetMoneyoptionaldrawingsList of filesnotesMulti-line textstatusSingle line textwritten by the workflow, then by youcustomerCustomer referenceset by Smootify with customer-fieldEach field's key is the Name of a field in the Webflow form, written exactly the same.
- Install Shopify Flow from the Shopify App Store. It is free in Shopify, but it is a separate app.
- In Shopify, create the metaobject definition
custom_quotewith the fields below. - Switch on the Metaobject creator add-on in the Smootify dashboard.
- Place the Smootify element in Webflow:
metaobject-creatorwithdata-type="custom_quote"andcustomer-field="customer", for logged-in customers: title, sizes with their unit, material, budget, notes and afile-inputfor the drawings. - Download the .flow file and import it in Shopify Flow.
- Create the definition without a display name field, so every request gets a random handle: the email link carries it.
- In the Slack step, pick your channel in place of
#quotes. - In the email step, replace
RESEND_API_KEYwith your Resend API key, set a sender on a domain you verified in Resend instead ofquotes@example.com, and point the button to your request page instead ofwww.example.com/quote. Without a request page, remove the button. - When you price a draft, set the custom line’s price, then send the invoice from the draft order: the customer pays it at checkout like any order.
- Test it once with a real submission or order, then turn the flow on.
Where people get stuck.
- 01
Nothing reaches the customer until someone prices the draft and sends the invoice: say on the page who answers and how soon.
- 02
The status after
receivedis yours to change in the admin (in progress, quote sent): the request page shows what the entry says. - 03
With the request page, anyone with the link reads the entry: keep in it only the project, never an email, phone or address. Leave the definition without a display name field: Shopify then gives every request a random handle. With the title as display name, the handle repeats the title and another customer’s link is easy to guess.
- 04
Files are limited to 20 MB each by Shopify: for heavy CAD files, ask for a link instead.
- 05
Store credit cannot be spent on a draft order invoice.
Get the .flow file.
In Shopify Flow, choose Import and pick the file. The workflow opens turned off: check that it reads your metaobject definition and its field keys, then turn it on.
Shopify plan. This file sends its email with Flow’s “Send HTTP request”, which runs only on the Grow, Advanced and Plus plans. On Basic, replace that step with the action of an app that sends transactional emails from Shopify Flow, such as Workflow Email: the rest of the workflow stays as it is.
Related.
Not part of a demo store.
Webflow writes.
Shopify reacts.
Forms that write to Shopify are on the Server plan, and Shopify Flow is free in Shopify. One Shopify app, billed on the store’s Shopify invoice.
- One app on the Shopify bill, not ten
- Free to build, pay only when you go live
- Works on Basic, Grow and Advanced
- Your 1.x store keeps working
- Every element stays yours to change
- Docs indexed in llms.txt