How to Sell Made-to-Order Products on Shopify
Shopify wasn't designed for made-to-order. Here's how to set up production timelines, custom order fields, and capacity limits so you can sell handmade products without drowning in support emails.
Shopify was built for products that sit on shelves waiting to be shipped. Add to cart, check out, print a label, done. Made-to-order products don't work that way. You have to make the thing first, and that takes anywhere from 3 days to 6 weeks depending on what you sell. Shopify doesn't have a native "made to order" product type, no built-in way to show production timelines, and no concept of "I can only make 10 of these per week." You have to build the workflow yourself.
This guide walks through the five things you need to set up to sell made-to-order products on Shopify without drowning in support emails, overselling beyond your capacity, or losing customers who didn't realize they'd be waiting three weeks.
Shopify's native processing time (and why it's not enough)
Shopify has a processing time setting buried in your shipping profiles (Settings → Shipping → Processing time). You can set it to same day, next business day, or up to 4 business days. That's the maximum. Four days.
If you make handmade jewelry that takes 2 weeks, custom furniture that takes 6 weeks, or hand-poured candles in batches every other Friday, this setting is useless. It also applies at the shipping profile level, not per product. You can't show "2 days" for your in-stock pieces and "3 weeks" for your custom orders within the same store.
Worse, the processing time doesn't display on your product page. It only affects estimated delivery date calculations in confirmation emails, and most themes don't even surface those calculations on the storefront. So even if Shopify allowed 14 days, your customers wouldn't see it before they buy. They'd see it after, in a confirmation email they might not read, and then they'd email you on day 3 asking why nothing has shipped.
This is the fundamental gap. Shopify assumes your products are ready to ship. Everything downstream (email templates, order timelines, customer expectations) inherits that assumption. Selling made-to-order means overriding it at every touchpoint.
Step 1: Display production timelines on your product pages
This is the single most impactful change you can make. A clear badge on your product page that says "Made to order — ships in 10-14 business days" prevents the majority of "when will it ship?" support emails overnight. Three ways to do this, from free to purpose-built:
Edit your theme directly (free, limited). Go to Online Store → Themes → Customize → Product page, add a text block, and type your lead time. This works if every product has the same production time. It breaks the moment different products take different amounts of time, because you can't show conditional text per product using the theme editor alone.
Use product metafields (free, technical). Create a custom metafield (Settings → Custom data → Products) called something like "lead_time_days." Set a value for each product. Then edit your theme's Liquid template to display it. This requires Liquid/HTML knowledge and maintenance. It also only supports one value per product, not per variant. A ring that ships in 2 days at size 6 but takes 3 weeks at size 11 can't show different timelines.
Use MTO Lead Time ($5/mo). Set per-variant production states: in stock (ships immediately), made to order with a specific number of production days, batch (ready by a certain date), or paused (not accepting orders). The app handles display automatically on collection pages, product pages, and the cart. Badges update when customers select different variants. No theme code editing required. Two placement modes: auto (theme embed, works everywhere) or manual (app blocks on specific pages).
We built MTO Lead Time because options 1 and 2 weren't sufficient for merchants with mixed catalogs where some items ship immediately and others take weeks. If your entire store has one production timeline, the free options work fine. If production time varies by product or variant, you need per-variant display.
Step 2: Collect custom order details at the product page
Made-to-order products often need information from the customer before you can start: ring size, engraving text, wood species, fabric color, reference photos, custom dimensions. Shopify's built-in product options handle standard attributes (3 option types, 100 variant combinations max). They can't handle free-text fields, file uploads, or conditional logic.
The quick fix is cart notes. Shopify adds a text box to the cart page where customers type special instructions. This works poorly in practice. Customers forget to fill it out. They write incomplete information ("size 7" but which finger?). You end up emailing them after they've ordered, which delays production and frustrates everyone.
Product option apps solve this by adding structured fields directly to the product page: text inputs, dropdowns, file uploads, checkboxes, date pickers. The customer fills them out before adding to cart, the data flows into the order details automatically, and you have everything you need to start production without a single follow-up email.
Globo Product Options is the most popular choice (4.9 stars, 1,500+ reviews, free plan available). It supports conditional logic, so you can show the engraving text field only when the customer selects "custom engraved" and hide it otherwise. We covered this and other tools in our handmade sellers app guide.
Step 3: Set production capacity limits
If you can make 10 custom pieces per week and your store accepts 25 orders, you've committed to either 2.5 weeks of overtime or 15 cancellation emails. Neither is sustainable.
Shopify's inventory system counts units per SKU. It tracks how many blue scarves you have in stock. It can't count total orders across all products. If you sell 8 different items but can only handle 15 total custom orders per week, inventory tracking has no mechanism to enforce that.
For true made-to-order products (you make each one when ordered), set inventory tracking to "Don't track inventory" in the product settings. This prevents Shopify from showing false "sold out" states, but it also means nothing stops you from accepting more orders than you can fill.
Order Cap adds the missing ceiling. Set a daily or weekly order limit at the store, product, or variant level. When you hit your cap, the checkout button disables and customers see a clear message: "Sold out for this week." Per-product limits let you cap custom commissions at 3 per week while letting your ready-made items sell freely.
Set your cap honestly. It's better to show "sold out" today and have the customer come back next week than to accept their order today and cancel it in 5 days. Overselling destroys trust faster than almost any other mistake.
Step 4: Configure shipping profiles for longer processing
Even with apps handling your storefront display, your Shopify shipping settings should be as accurate as possible. Go to Settings → Shipping and delivery → Processing time. Set it to the maximum Shopify allows (4 business days) even if your actual production time is longer. This won't solve the display problem, but it prevents Shopify from generating wildly unrealistic delivery estimates in your order confirmation emails.
Set your fulfillment to manual, not automatic. Made-to-order products should only be marked as "shipped" when they actually ship, not when the order is placed. Go to Settings → Shipping and delivery → Order processing and make sure auto-fulfillment is off.
If you sell both in-stock and made-to-order products, create separate shipping profiles. Your in-stock items use the standard profile with 1-day processing. Your MTO items use a separate profile with maximum processing time. This way the estimated delivery dates in confirmation emails are at least directionally correct for each type.
Step 5: Communicate during the production window
Between order placement and shipping, your customer is waiting. The longer the wait, the more likely they'll email you.
Set up a simple post-purchase flow. After the order confirmation email (which Shopify sends automatically), add a "production started" email on day 2-3. If your typical production time exceeds one week, add a mid-production update. When you ship, the Shopify tracking notification handles the rest.
Klaviyo or Shopify Email can automate these flows based on time delays from the order date. Create a flow triggered by "order placed," add time delays, and send updates at each stage. Two to three emails across the production window is enough. More than that feels like spam.
Keep the tone personal. Handmade customers chose you specifically because you're not Amazon. A quick email that says "Your cutting board is being glued up today — here's a photo of the walnut slab I selected for your piece" builds more loyalty than any marketing campaign. This is where small makers have an enormous advantage over large operations. Use it.
The DIY approach vs. apps
You can set up a basic made-to-order workflow without any paid apps. Theme text blocks for production time, cart notes for custom details, manual capacity management. This works at low volume (under 10 orders per week) when you have time to manage the manual parts.
It breaks around 15-20 orders per week. At that point, the follow-up emails for missing custom details, the mental load of tracking daily capacity, and the support emails about production time start eating hours you don't have. Apps don't add complexity for the sake of it. They automate the repetitive parts so your time goes to production, not administration.
Start with the free options. If you find yourself spending more than 30 minutes per day on tasks an app would handle, that's your signal to switch.
FAQ
Can I sell both made-to-order and ready-to-ship products in the same store?
Yes. Use separate collections or product tags to organize them. For production time display, MTO Lead Time handles this natively. Set in-stock variants to "ships immediately" and MTO variants to their specific production days. Each shows its own timeline on the storefront.
How do I handle inventory for made-to-order products?
For true MTO products (you make each one when ordered), set inventory to "Don't track inventory" in the product settings. For batch production (e.g., 20 candles every Friday), track inventory normally and restock after each batch. MTO Lead Time's "batch" state lets you display "Ready by [date]" instead of a day count.
What's the difference between Shopify's processing time and a lead time app?
Shopify's processing time is a backend setting (max 4 days) that only affects delivery estimates in confirmation emails. It doesn't display on product pages and can't be set per product. A lead time app shows visible badges on your storefront, supports timelines of any length, and can display different values per variant.
Should I call it "pre-order" or "made to order"?
"Made to order" is more accurate for handmade products. "Pre-order" implies the product exists in final form and will ship to everyone at once (like a book release). "Made to order" communicates that production starts after purchase and each piece is individual. Customers who understand this are significantly more patient with longer timelines.
How long is too long for a production timeline?
Conversion rates drop noticeably above 4-6 weeks. If your production time exceeds 6 weeks, consider collecting a deposit upfront and sending production updates. Some furniture makers and commissioned artists sell successfully with 8-12 week timelines, but only with extremely clear communication at every step.
Bottom line
Selling made-to-order on Shopify is viable, but Shopify won't do the work for you. At minimum, you need two things: visible production timelines on your product pages and a mechanism to limit orders to your actual capacity. Those two changes alone will cut your support email volume in half and prevent the overselling that leads to cancellations and one-star reviews. Everything else, custom order fields, post-purchase emails, deposit collection, builds on that foundation. Get the timeline display and capacity limits right first, then layer on the rest as your order volume grows.